有个逻辑不按预想那样执行,请问下哪里错了,应该怎么做?描述如下:
目标需求:【index】中openWindow打开【test】后,【test】中fire【index】的一个自定义监听事件,【index】接收到事件后,show出自身,并执行SuccessCallback。
问题:android(android 5.02)上可以按照预定逻辑执行,但iphone(5s, iOS9.2)上,【index】能接收到事件,但show的动画不对(直接展示,没有'pop-in'和'300'),而且SuccessCallback也没有执行。
代码:附件中有简单demo工程
【index.html】:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<script src="js/mui.min.js"></script>
<link href="css/mui.min.css" rel="stylesheet" />
<script type="text/javascript" charset="utf-8">
mui.init();
mui.plusReady(function() {
window.addEventListener('fireshow', function() {
console.log('show fire');
plus.webview.currentWebview().show('pop-in', 300, function() {
console.log('show callback');
});
});
document.getElementById("test").addEventListener('tap', function() {
mui.openWindow({
url: 'test.html',
id: 'test.html',
show: {
aniShow: 'pop-in',
duration: 300
}
});
});
});
</script>
</head>
<body>
<h1>index</h1>
<button id="test">test</button>
</body>
</html>
【test.html】:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<script src="js/mui.min.js"></script>
<link href="css/mui.min.css" rel="stylesheet"/>
<script type="text/javascript" charset="UTF-8">
mui.init();
mui.plusReady(function() {
document.getElementById("index").addEventListener('tap', function() {
mui.fire(plus.webview.getLaunchWebview(), 'fireshow');
});
});
</script>
</head>
<body>
<h1>test</h1>
<button id="index">index</button>
</body>
</html>
chenqipeng (作者)
谢谢回答。但android上是可以触发回调和动画的,而iphone不可以。
2016-01-13 12:19
DCloud_IOS_XTY
H5+ API是连续调用show不会触发回调和动画, android会改成和iOS一样
2016-01-13 15:28
chenqipeng (作者)
谢谢。但如果有这么一个需求该怎么做?
【A】中使用openwindow打开【B】,这时【A】还存在且没有hide(这点对吧?),然后【B】中想使用一个动画来show出【A】。
这种需求还是合理的,如“返回首页”功能,就是这种逻辑。不能单纯地关闭【B】来达到回到【A】的目的,那就要求【A】通过动画show出来。
2016-01-13 17:17
DCloud_IOS_XTY
b.hide("pop-out")后者b.close("pop-out")
2016-01-13 17:38
chenqipeng (作者)
那如果这样呢?
【A】打开【B】,【B】打开【C】......【Y】打开【Z】;最后【Z】要回到【A】。
其实这个问题可能应该这么归结:如何使用动画来show出一个当前存在但没有hide的,又不在可见视窗内的webview。
2016-01-13 18:14