zuozuo168
zuozuo168
  • 发布:2016-11-28 22:00
  • 更新:2019-01-15 12:53
  • 阅读:3239

网络webview 如何与h5+创建的webview通信?混编!

分类:HTML5+

业务需求如下:
用h5+ 创建应用壳,ios 、android, 里面嵌套一个网络链接。
这个应用里面有支付功能,分享功能。
产品有微信端,和app端,想共用一套代码,所以选择了h5+ 。

在开发中并且研究文档发现,可以通过evalJS可以执行网络webview 里面的js。但是没有发现 网络webview 调用h5+里面的方法。。

A页面的子页面B(B为网络web)

A页面调用B页面的方法如下
plus.webview.getWebviewById('http://baidu.com').evalJS("alert('evalJS: '+location.href);");
但是 B页面可以调用A页面的方法???

我想通过B页面直接调起原生的app支付。如微信支付、支付宝支付、调起原生的分享。
也就是所谓的混编吧!

不知道官方有没有好的解决办法???或者建议???

2016-11-28 22:00 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

5+runtime
5+API的调用,依赖5+runtime。微信浏览器,是不支持5+runtime的。
如何判断Runtime是否支持5+ API
HTML中如何安全调用5+ API (plus is not defined)

5+webview加载的url,可以是本地的也可以是网络地址。
并不是网络webview,而是当前应用的webview加载了网络地址的html。
创建新的Webview窗口

支付
以支付宝为例,wap站需要调用支付宝web版相关的API。(不知道微信是否对此做限制,具体可以网上查找微信开发相关资料)
5+App,已经集成了了支付宝的sdk,只需要调用5+payment模块的支付API即可。

建议
参考上面判定5+环境的相关介绍,在不同环境下调用不同环境的支付API。
也就是说,微信浏览器中,调用的是web版的,而5+App中调用的是5+集成的支付API。

  • zuozuo168 (作者)

    好的 明白了! 不管是本地的webview 还是网络的webview 只要支持5+runtime。都可以调用 5+api是吧!!! 谢谢!

    2016-11-29 14:15

1***@QQ.COM

1***@QQ.COM

plus.webview.getWebviewById('a页面id').evalJS("alert('evalJS: '+location.href);");

该问题目前已经被锁定, 无法添加新回复