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

QQ登录

只需一步,快速开始

查看: 2257|回复: 7

[结贴] 外卖地图页mapActivity.w代码执行问题和跳转方式是否有关

[复制链接]

36

主题

198

帖子

890

积分

高级会员

Rank: 4

积分
890
QQ
发表于 2017-6-7 16:57:48 | 显示全部楼层 |阅读模式
如果把windowDialog跳转的方式换做用justep.Shell的跳转方式到这个mapActivity.w页面后,把mapDataReceiverReceive这里的全部代码放到onParamsReceive事件或是onload事件中,$mapFrame.on不执行,,,想问一下这和跳转方式有关系吗?如下图所示:
QQ截图20170607165139.png
发表于 2017-6-7 17:21:05 | 显示全部楼层
没啥区别啊!
onParamsReceive 有没有执行呢??debugger 调回一下!

只不过是打开方式不一样而已!
如果windowDialog 能正常打开!
那么justep.Shell.showPage() 就肯定也没问题的!

但是外面案例中!并没有定义shellImp 的单页应用
http://docs.wex5.com/shellimpl/

如果使用justep.Shell.showPage()跳转,应该会打开一个新页!而不是单页应用了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

36

主题

198

帖子

890

积分

高级会员

Rank: 4

积分
890
QQ
 楼主| 发表于 2017-6-7 18:52:26 | 显示全部楼层
liangyongfei 发表于 2017-6-7 17:21
没啥区别啊!
onParamsReceive 有没有执行呢??debugger 调回一下!

嗯,,我是自己建了一个首页,跳转没问题,,而且在onParamsReceive事件也执行了,只不过就是执行到$mapFrame.on()的前面,,$mapFrame.on()里面的mapFrame.contentWindow.postMessage(position, "*");就不执行了,,这样也就传不了参数到iframe嵌入的html中了。
总之,就是不知道为什么换了一种跳转方式这个$mapFrame.on()方法就不执行了!
回复 支持 反对

使用道具 举报

发表于 2017-6-8 11:18:33 | 显示全部楼层
本帖最后由 liangyongfei 于 2017-6-8 11:24 编辑
双桅船 发表于 2017-6-7 18:52
嗯,,我是自己建了一个首页,跳转没问题,,而且在onParamsReceive事件也执行了,只不过就是执行到$mapF ...

是的!确实这样!
那你就只能是使用windowDialog 了!

你好楼主,您反馈的这个现象通过验证是产品缺陷,我们已提交到产品组(内部编号:2017060800001),感谢楼主的支持与配合。

你可以这样修改:
将iframe中的src属性去掉!然后在js中动态设置,就可以了
  1. Model.prototype.mapDataReceiverReceive = function(event) {
  2.                 debugger;
  3.                 var position = event.data;
  4.                 var mapPanelId = $(this.getElementByXid("mapPanel")).attr('id');
  5.                 var $mapFrame = $('#' + mapPanelId + ' iframe')
  6.                 $mapFrame.attr('src',require.toUrl('$UI/takeout/map.html'));
  7.                 var mapFrame = $mapFrame.get(0);
  8.                 $mapFrame.on('load',function(){
  9.                         alert('test');
  10.                         mapFrame.contentWindow.postMessage(position, "*");
  11.                 });
  12.         };
复制代码




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

使用道具 举报

36

主题

198

帖子

890

积分

高级会员

Rank: 4

积分
890
QQ
 楼主| 发表于 2017-6-8 14:27:52 | 显示全部楼层
liangyongfei 发表于 2017-6-8 11:18
是的!确实这样!
那你就只能是使用windowDialog 了!

嗯,改成了动态添加src后有个问题:就是当跳转到地图页后,这个$mapFrame.on('load',function(){})代码会走一次,关闭掉这个地图页后,再重新打开地图页,,这个$mapFrame.on('load',function(){})代码会走两次,再关掉,再重新打开,又会走三次,这样一直累加下去......
这会不会造成什么影响?
回复 支持 反对

使用道具 举报

36

主题

198

帖子

890

积分

高级会员

Rank: 4

积分
890
QQ
 楼主| 发表于 2017-6-8 15:19:01 | 显示全部楼层
liangyongfei 发表于 2017-6-8 11:18
是的!确实这样!
那你就只能是使用windowDialog 了!

问题一:还有就是,如果把src写在组件中,不动态创建的话,第一次打开地图页正常刷新传参,关闭后,再打开时,就不走传递参数代码了,而且这个iframe嵌入的html页也没有刷新,和第一次打开时是一样的,,,

问题二:然后改成你说的动态添加src属性就每次打开都走传参数的代码了,,,解决了问题一,但是这又出现我上边的那个问题了($mapFrame.on()走好几遍,,是否有什么影响)

问题三:还有什么其他方式,让每次进入到mapActivity.w嵌入的html页面都刷新吗(就是每次进来都是和打开一个新的页面效果是一样的)
回复 支持 反对

使用道具 举报

发表于 2017-6-8 16:24:25 | 显示全部楼层
双桅船 发表于 2017-6-8 15:19
问题一:还有就是,如果把src写在组件中,不动态创建的话,第一次打开地图页正常刷新传参,关闭后,再打 ...

可以换成在onLoad事件中接受参数!这样就只执行一次了!
http://docs.wex5.com/wex5-ui-question-list-2052/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

36

主题

198

帖子

890

积分

高级会员

Rank: 4

积分
890
QQ
 楼主| 发表于 2017-6-8 19:19:42 | 显示全部楼层
liangyongfei 发表于 2017-6-8 16:24
可以换成在onLoad事件中接受参数!这样就只执行一次了!
http://docs.wex5.com/wex5-ui-question-list-20 ...

动态创建src和向html传参的代码都写在onload事件中,这时就可以用justep.Shell.showPage()的跳转方式了,,不用windowDialog了,,可以了,谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 16:00 , Processed in 0.070159 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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