SU一Seven
SU一Seven
  • 发布:2015-01-12 18:02
  • 更新:2015-01-14 17:48
  • 阅读:1225

预加载时报错

分类:MUI

我在预加载时报以下错误:

2015-01-12 18:02 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

提供下代码以供分析。

SU一Seven

SU一Seven (作者)

app.js中代码:
/* 初始化该页面潜在的跳转页面。

  • 注:由于需要控制预加载的页面数量,会根据传入参数与现有打开的webview 进行比对,若页面未创建,则对改页面进行预加载,若已经打开的页面不在潜在页面中,则进行关闭。
  • 注:如果涉及列表内容,潜在跳转页面很多但页面样式相对一致的情况,应该考虑使用使用模版方式,而不是该方式。
    */
    var initPotentialPage = function(potentialPages) {
    if (potentialPages != null) {
    for (var i = 0, potentialPagesLen = potentialPages.length; i < potentialPagesLen; i++) {
    preLoadPotentialPage(potentialPages[i]);
    }
    }
    };

/* 对潜在页面进行预加载处理。

  • */

var preLoadPotentialPage = function(url) {
//处理url获得id
var id = url.substring(url.lastIndexOf('/') != -1 ? url.lastIndexOf('/') + 1 : 0, url.indexOf('.html'));
var webView = mui.preload({
id: id,
url: url,
styles: {
top: '0px',
bottom: '0px',
zindex: 2
},
show: {
autoShow: true,
aniShow: 'none'
}

});  

};

在登录时判断预加载是否成功,不成功进行预加载页面,登录页面监听登录按钮代码如下:
//监听按钮和a标签事件
document.getElementById("login").addEventListener('tap', function() {
// 获取输入的用户名及密码
userAccount = document.getElementById("userAccount").value;
var clientInfo = plus.push.getClientInfo();
var userPassword = document.getElementById("userPassword").value;
if (userAccount == '' || userAccount == 'undefined') {
createMessageView("手机号码不能为空");
return;
} else if (userPassword == '' || userPassword == 'undefined') {
createMessageView("登录密码不能为空");
return;
}
var passwordMd5 = mui.MD5(userPassword);
var serviceName = '/account/login';
var type = 'post';
var dataType = 'json';
var data = {
userAccount: userAccount,
userPassword: passwordMd5,
clientId: clientInfo.clientid
};
wa = plus.nativeUI.showWaiting("登录中..");
//在登录时判断预加载是否成功,如果不成功,重新进行加载;
var mainWebview = plus.webview.getWebviewById("main");
if(mainWebview == 'undefined'||mainWebview==''||mainWebview==null){
var initPages = [];
initPages.push("main.html");
initPotentialPage(initPages);
}
mui.ajax({
url: remoteUrl + serviceName,
data: data,
success:success,
error:response_error,
dataType: dataType,
timeout:10000,
type:"POST"
});
});

DCloud_UNI_CHB

DCloud_UNI_CHB

mui.MD5()是你自己扩展的方法吗?
另外,看一下错误是页面加载后立即报错的,还是按下按钮后报错的;
可以在代码中重要节点处打印log,定位出问题的大致位置。

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