1***@qq.com
1***@qq.com
  • 发布:2018-01-16 16:40
  • 更新:2018-01-16 16:51
  • 阅读:3133

[ERROR] : Error: webview[test.html] does not exist at js/mui.min.js:6

分类:MUI

webview也创建了,但真不知道为什么报这样的错,求大神指点
下面是代码

<!doctype html>  
<html>  

    <head>  
        <meta charset="UTF-8">  
        <title>订单列表</title>  
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  
        <link href="css/mui.min.css" rel="stylesheet" />  
        <link rel="stylesheet" href="css/style.css" />  
    </head>  

    <body>  
        <header class="mui-bar mui-bar-nav header">  
            <h1 class="mui-title">订单</h1>  
        </header>  
        <div class="mui-content">  
            <!--列表信息流 开始-->  
            <ul id="orders" class="mui-table-view"></ul>  
            <!--列表信息流 结束-->  
        </div>  
        <script id="list" type="text/html">  
            {{each stories as order}}  
            <li class="mui-table-view-cell mui-media" id="{{order.id}}">  
                <div class="mui-media-body">  
                    这里是测试客户名称  
                    <span class="mui-badge mui-badge-success num">20</span>  
                    <p class='mui-ellipsis'>  
                        <div class="type">order.title</div>  
                        <div class="time">{{order.id}}</div>  
                    </p>  
                </div>  
            </li>  
            {{/each}}  
        </script>  
        <script type="text/javascript" src="js/template-web.js"></script>  
        <script type="text/javascript" src="js/mui.min.js" ></script>  
        <script >  
            //初始化预加载详情页面  
            mui.init({  
                preloadPages: [{  
                    id: 'test.html',  
                    url: 'test.html'  
                }]  
            });  

            var detailPage = null;  
            //添加列表项的点击事件  
            mui('.mui-table-view').on('tap', 'li', function(e) {  
                var id = this.getAttribute('id');  
                //获得详情页面  
                if(!detailPage) {  
                    detailPage = plus.webview.getWebviewById('test.html');  
                }  
                //触发详情页面的newsId事件  
                mui.fire(detailPage, 'id', {  
                    id: id  
                });  
                //打开详情页面            
                mui.openWindow({  
                    id: 'test.html'  
                });  
            });  
            mui.plusReady(function() {  
                //请求列表信息流  
                mui.ajax("https://news-at.zhihu.com/api/4/theme/11", {  
                    dataType: 'json',  
                    type: 'get',  
                    timeout: '10000',  
                    success: function(data) {  
                        var html = template('list', data);  
                        document.getElementById('orders').innerHTML = html;  
                    },  
                    error: function(xhr, type, errorThrown) {  
                        console.log(type);  
                    }  
                });  
            });  

            /**  
             * 格式化时间的辅助类,将一个时间转换成x小时前、y天前等  
             */  
            var dateUtils = {  
                UNITS: {  
                    '年': 31557600000,  
                    '月': 2629800000,  
                    '天': 86400000,  
                    '小时': 3600000,  
                    '分钟': 60000,  
                    '秒': 1000  
                },  
                humanize: function(milliseconds) {  
                    var humanize = '';  
                    mui.each(this.UNITS, function(unit, value) {  
                        if(milliseconds >= value) {  
                            humanize = Math.floor(milliseconds / value) + unit + '前';  
                            return false;  
                        }  
                        return true;  
                    });  
                    return humanize || '刚刚';  
                },  
                format: function(dateStr) {  
                    var date = this.parse(dateStr)  
                    var diff = Date.now() - date.getTime();  
                    if(diff < this.UNITS['天']) {  
                        return this.humanize(diff);  
                    }  

                    var _format = function(number) {  
                        return(number < 10 ? ('0' + number) : number);  
                    };  
                    return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDay()) + '-' + _format(date.getHours()) + ':' + _format(date.getMinutes());  
                },  
                parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象  
                    var a = str.split(/[^0-9]/);  
                    return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);  
                }  
            };  
        </script>  
    </body>  

</html>

test.html如下:
<!doctype html>
<html>

<head>  
    <meta charset="UTF-8">  
    <title></title>  
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  
    <link href="css/mui.min.css" rel="stylesheet" />  
</head>  

<body>  
    <script src="js/mui.min.js"></script>  
    <script type="text/javascript">  
        mui.init()  
        //添加newId自定义事件监听  
        window.addEventListener('id', function(event) {  
            //获得事件参数  
            var id = event.detail.id;  
            //根据id向服务器请求新闻详情  
            .....  
        });  
    </script>  
</body>  

</html>

2018-01-16 16:40 负责人:无 分享
已邀请:
BoredApe

BoredApe - 有问题就会有答案。

mui.openWindow 传入的 webview 对象不存在 检查是否预加载成功 通过id获取webview对象是否能获取到

  • 1***@qq.com (作者)

    我代码里写的就按文档里的啊 id确实传了的 求教

    2018-01-16 16:54

  • BoredApe

    试试 通过id 获取webview能否获取到

    2018-01-16 16:54

  • BoredApe

    在chrome://inspect 中火车 plus.webview.all() 查看一下 预加载的页面是否成功创建。

    2018-01-16 16:55

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