用HBuilder开发app,因为和别的公司合作,通过mui.openWindow({})打开自己的页面,然后将他们的网页作为自己页面的子页面通过mui.init({subpages:[{xxxx}]})打开,这里都没有问题,但是现在我们通过他们的网页生成了订单,他们要打开我们app的页面,将订单(或者参数)传回给我们这个页面,这该如何实现?
- 发布:2017-12-18 15:55
- 更新:2017-12-18 16:14
- 阅读:6364
回梦無痕 - 暂停服务
我捋一捋,你的APP用mui.openWindow打开了你们A页面,然后这个A页面上加载一个子页面B页面,而这个B页面是别人公司的。你想要实现的是这个B页面生成一个订单号,然后打开你们的C页面,把订单号传到你们的C页面。
上面我说的没错吧?
如果上面的成立,那么方法有:
如果那个B页面你可以改动,就在B页面增加代码,用plus.webview.create( url, id, styles, extras );中的extras可以传递参数到C页面。
如果那个B页面你不能改动,那么方法就绕一点,那么就在A页面用webview.evalJS(),把js注入B页面,重写某些方法,把plus.webview.create( url, id, styles, extras );方法重写进入B页面主要函数中,让B页面使用重写进入的plus.webview.create( url, id, styles, extras );方法回传参数到C页面;
3***@qq.com (作者)
的确是你说的这种情况没错,但是B页面不能改动,而且B页面生成订单号以后,点击跳转什么的还是他们那边操作,他们页面上有按钮,通过点击他们的按钮来跳到我们的C页面,把他们的参数传过来。我看了下webview.evalJS()方法,这个方法跳转好像是要我们这边操作,情况似乎不同啊。
2017-12-18 17:23
回梦無痕
回复 3***@qq.com:webview.evalJS()方法是给页面注入JS,既然可以注入JS,当然也可以注入打开页面传递参数的JS代码。要在你公司的页面A页面向第三方的B页注入JS。
2017-12-18 17:28
3***@qq.com (作者)
回复 回梦無痕:我是这么写的(我自己的A页面打开了自己的B页面,即ws,然后B页面下用create方法创建了别人的C页面embed,然后用append加进B页面中):
var ws,embed;
mui.plusReady(function(){
ws = plus.webview.currentWebview();
embed = plus.webview.create('myUrl', 'id', {top:'45px',bottom:'0px'});
ws.append( embed );
ws.addEventListener("click",function(){
embed.evalJS('alert("evalJS: "+location.href);');
},false);
});
我通过ws监听点击事件,但是方法并没有执行,我能麻烦您看一下是什么地方错了吗?
2017-12-19 16:05
7***@qq.com
我也调用服务器的网页,在这个网页中检测到window. plus是undefined. 好像不能使用plus
2018-07-19 19:29