起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1973|回复: 5

[处理中3] Wex5 如何在当前app中嵌入其它网站,并且能调用插件

[复制链接]

107

主题

385

帖子

1048

积分

金牌会员

Rank: 6Rank: 6

积分
1048
QQ
发表于 2018-3-30 09:06:27 | 显示全部楼层 |阅读模式
现在遇到一个需求,在当前app中的页面,点击按钮跳转到第三方页面,在第三方页面中可以调用插件,怎么实现?
windowcontainer貌似只能是当前app中的.w文件,使用外部的html都用不了。如果嵌入iframe,则在当前iframe内的页面貌似不能调用插件。   该怎么办呢?
发表于 2018-3-30 16:01:37 | 显示全部楼层
建议直接用模式4打包外部网站就可以
http://doc.wex5.com/mode4-cordova/

如果想在wex5 开发的APP 中跳转   外部网站  ,可以用 window.location.href  重定向出去访问外网吧!
但是就回不来了

如果想使用iframe ,访问corodva插件,是要访问父上的window的!
http://docs.wex5.com/wex5-ui-question-list-2012/

才能得到cordova插件的对象方法调用
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

107

主题

385

帖子

1048

积分

金牌会员

Rank: 6Rank: 6

积分
1048
QQ
 楼主| 发表于 2018-3-30 17:41:38 | 显示全部楼层
liangyongfei 发表于 2018-3-30 16:01
建议直接用模式4打包外部网站就可以
http://doc.wex5.com/mode4-cordova/

看到了你给的方法,非常感谢!

但是你给出的方法是针对不跨域的iframe的,如果跨域,还是获取不了
回复 支持 反对

使用道具 举报

发表于 2018-3-30 17:58:26 | 显示全部楼层
liupeng9030 发表于 2018-3-30 17:41
看到了你给的方法,非常感谢!

但是你给出的方法是针对不跨域的iframe的,如果跨域,还是获取不了 ...

那就不行了。只能是单独模式4打包网站,或者重定向打开网站吧
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

107

主题

385

帖子

1048

积分

金牌会员

Rank: 6Rank: 6

积分
1048
QQ
 楼主| 发表于 2018-3-31 14:37:50 | 显示全部楼层
liangyongfei 发表于 2018-3-30 17:58
那就不行了。只能是单独模式4打包网站,或者重定向打开网站吧

我想到了一种方法,初步尝试了下,是可以跑起来的,比如扫描二维码、获取设备信息、获取gps等等都是可以的。
针对不跨域的iframe,iframe内页可以直接使用parent.xxxxx();或者top.xxxxx();调用父页面或顶层页面的方法,在该方法中调用插件,在调用完成插件后再回调iframe内页方法就可以了。
针对跨域的iframe,由于使用parent.xxxx();或者top.xxxx();直接报跨域的错误,所以需要借助html5的消息通讯机制(postMessage)。内层、外层的页面都监听message事件,再iframe内部点击按钮需要调用插件时,直接发送消息到外层页面上,外层页面接收到消息后调用插件,完成后把插件返回的数据作为参数再发送到iframe内页中,就可以实现跨域情况下iframe内页调用插件的情况。

以上两种方式都已经通过测试,方式可行。
回复 支持 反对

使用道具 举报

发表于 2018-4-2 10:12:04 | 显示全部楼层
liupeng9030 发表于 2018-3-31 14:37
我想到了一种方法,初步尝试了下,是可以跑起来的,比如扫描二维码、获取设备信息、获取gps等等都是可以 ...

嗯嗯 ,如果实现了,欢迎分享demo  

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-27 23:34 , Processed in 0.065315 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表