chenqipeng
chenqipeng
  • 发布:2016-01-12 11:16
  • 更新:2016-01-13 10:59
  • 阅读:1467

iphone上webview的show事件的SuccessCallback没有执行

分类:MUI

有个逻辑不按预想那样执行,请问下哪里错了,应该怎么做?描述如下:

目标需求:【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>
2016-01-12 11:16 负责人:无 分享
已邀请:
DCloud_IOS_XTY

DCloud_IOS_XTY

按照设计连续调用show不会触发回调和动画,请@DCloud_Android_磊子 确认下

  • 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

Android_磊子

Android_磊子

安卓平台,已修复此问题,下版本进行更新。

  • chenqipeng (作者)

    谢谢回答。android上没有问题的,正常显示。iphone上呢?现在两个平台的动画和执行逻辑不同,这才麻烦。

    2016-01-13 12:18

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