mui 开发心得(收藏)
=============关于ios 12沉浸式不生效的解决方法==============================
新版本webview调整了适配沉浸式的规则,开发者可以更灵活的根据自己的需要进行沉浸式模式的适配,
这种情况下webview会自动调整内容区域避免和安全区域重合,一些老项目升级后如不做处理在沉浸式模式下顶部会显示灰条或者其他显示异常,该问题可以通过以下方式解决:
注意:webview style 中位置区域的计算是包含安全区域的
在meta节点中添加viewport-fit,关于viewport-fit 的详细说明可以自己百度下
=============关于跨域==============================
通过mui的ajax请求是可以实现跨域的。
跨域是浏览器安全里的一个名词。记住了 是浏览器。
而我们的是app,请求并不是走浏览器脚本,而是用的H5+底层请求的。所以不存在什么跨域。直接调用。
===========获取应用入口页面的方法======================
var h=plus.webview.getWebviewById( plus.runtime.appid );
console.log( "应用首页Webview窗口:"+h.getURL() );
==========判断plus对象是否生效=======================
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}
============获取上一页(获取父页面)的方法==============================
var preUrl = plus.webview.currentWebview().opener().getURL();
console.log(preUrl);
===========双击回退按钮后关闭app的方法==========================
//首页返回键处理
//处理逻辑:1秒内,连续两次按返回键,则退出应用;
var first = null;
mui.back = function() {
//首次按键,提示‘再按一次退出应用’
if (!first) {
first = new Date().getTime();
mui.toast('再按一次退出应用');
setTimeout(function() {
first = null;
}, 1000);
} else {
if (new Date().getTime() - first < 1000) {
plus.runtime.quit();
}
}
};
============手机网络状态========================================
document.addEventListener( "netchange", function() {
var network = plus.networkinfo.getCurrentType();
if(network < 2) {
if(this.network > 1) {
plus.nativeUI.toast('您的网络已断开', undefined, '期待乐');
}
}
if(this.network == 3 && network > 3) { plus.nativeUI.toast('您网络已从wifi切换到蜂窝网络,浏览会产生流量', undefined, '期待乐', '我知道了'); } this.network = network;
});
==========手机回退键的触发======================================
function plusReady(){
ws=plus.webview.currentWebview();
// Android处理返回键
plus.key.addEventListener('backbutton',function(){
back();
},false);
compatibleAdjust();
}
=============有选择项的提示框==========
//退出登录
doLogout:function(){
var btnArray = ['再逛逛','是的'];
mui.confirm('你确定退出登录吗?', '提示', btnArray, function(e) {
if (e.index == 1) {
$.get(const_server_url+"/1/login/logout.json",function(data){
if(data.code == "200"){
m_login.clear();
mui.openWindow({
id:"registerPhone"
});
}else{
mui.alert(data.message);
}
});
}
});
}
===========微信支付中提示"支付权限检查失败"=========
微信支付有两个,一个是微信公众号的微信支付,
还有一个就是上面这个地址里面的微信支付,这两个微信支付不一样。
所以存在两个APPID、mch_id。
你用对了么
=========app升级代码=======================
参照: http://ask.dcloud.net.cn/question/5022,http://ask.dcloud.net.cn/article/182
发表评论: