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

QQ登录

只需一步,快速开始

查看: 2368|回复: 9

[结贴] justep.shell.closeAllOpenedPages于justep.shell.showPage()冲突

[复制链接]

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
发表于 2018-6-14 13:42:01 | 显示全部楼层 |阅读模式
本帖最后由 邹胖胖 于 2018-6-14 13:45 编辑

调用了justep.shell.closeAllOpenedPages回到主页后,马上再调用justep.shell.showPage()打开一个页面,有时候会导致页面打不开,我估计是前一句代码把我现在要打开的页面也关闭了,
我试过在justep.shell.showPage()的时候先加一个1秒的延迟,但是偶尔还是会有这种情况,请问要怎么解决?
发表于 2018-6-14 13:46:55 | 显示全部楼层
调用了justep.shell.closeAllOpenedPages回到主页后,
稍等会儿
再调用justep.shell.showPage()打开一个页面
这个时候正常吗??

可能页面关闭的进程中吗,无法调用打开页面的逻辑,无法打开,需要关闭完了才能再打开!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2018-6-14 13:56:38 | 显示全部楼层
liangyongfei 发表于 2018-6-14 13:46
调用了justep.shell.closeAllOpenedPages回到主页后,
稍等会儿
再调用justep.shell.showPage()打开一个页 ...

你说的那种是正常的,我怎么确认关闭完了?这个方法页也没有成功回调啊,或者怎么让它同步执行?
回复 支持 反对

使用道具 举报

发表于 2018-6-14 13:57:22 | 显示全部楼层
邹胖胖 发表于 2018-6-14 13:56
你说的那种是正常的,我怎么确认关闭完了?这个方法页也没有成功回调啊,或者怎么让它同步执行? ...

那你就延时 setTimeout 一段时间再跳转吧!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2018-6-14 14:04:16 | 显示全部楼层
liangyongfei 发表于 2018-6-14 13:57
那你就延时 setTimeout 一段时间再跳转吧!

已经延迟1秒了,频率降低了些但是还是没有解决,没有其他办法吗?
回复 支持 反对

使用道具 举报

发表于 2018-6-14 14:32:16 | 显示全部楼层
邹胖胖 发表于 2018-6-14 14:04
已经延迟1秒了,频率降低了些但是还是没有解决,没有其他办法吗?

对了你是在哪儿调用的??  是否是主页?? 调用closeAllOpenedPages

如果是某个关闭的页面中调用的,应该就无法执行了!  

1.你试试setTimeout 时间更长一些行不??
2.试试在closeAllOpenedPages之前先执行 setTimeout 延迟跳转,然后再关闭试试!

如果showPage 在 主页中去执行的,应该就没问题吧!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2018-6-14 15:18:41 | 显示全部楼层
liangyongfei 发表于 2018-6-14 14:32
对了你是在哪儿调用的??  是否是主页?? 调用closeAllOpenedPages

如果是某个关闭的页面中调用的, ...

是在主页的,两个接口都是在主页调用的,主页里面一个时钟里调用的
回复 支持 反对

使用道具 举报

发表于 2018-6-14 15:30:44 | 显示全部楼层
邹胖胖 发表于 2018-6-14 15:18
是在主页的,两个接口都是在主页调用的,主页里面一个时钟里调用的

嗯,延迟时间再长一些试试,而且确定代码执行过了
是这个的原因,确认下
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2018-6-14 15:43:34 | 显示全部楼层
liangyongfei 发表于 2018-6-14 15:30
嗯,延迟时间再长一些试试,而且确定代码执行过了
是这个的原因,确认下 ...

好吧,确实是closeAllOpenedPage这个接口是异步的,在done那里就开始异步了,我试过修改源码,不使用deferred,达到同步的效果了,打出来的日志也显示是同步的,但是还是打不开页面,不知道为啥;唯一找到的办法就是修改源码,给closeAllOpenedPage传一个参数,each循环完了以后,在源码里打开这个页面
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2018-6-14 16:21:45 | 显示全部楼层
本帖最后由 邹胖胖 于 2018-6-14 16:36 编辑
liangyongfei 发表于 2018-6-14 15:30
嗯,延迟时间再长一些试试,而且确定代码执行过了
是这个的原因,确认下 ...

找到解决方法了,justep.shell.closeAllOpenedPages().done(function({justep.Shell.showPage("p1.w")}));测试过是可以正常返回主页并正常打开p1页面
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 01:07 , Processed in 0.058803 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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