plus初始化原理及plus is not defined,mui is not defined 汇总

关于plus是哪里来的问题

plus是5+Runtime的内部对象。
就像chrome浏览器里有chrome.开头的一些对象方法,5+runtime内部内置了plus对象。
因为plus和mui不一样,plus是引擎级别的,不需要前端框架。而mui是前端框架,所以是要引入mui.js才能使用的。

不要在没有plus和mui的环境下调用相关API

普通浏览器里没有plus环境,只有HBuilder真机运行、打包后、或流应用环境下才能运行plus api。
在普通浏览器里运行时plus api时控制台必然会输出plus is not defined错误提示。
mui作为一个前端框架,你必须保证当前页面引入了mui.js。否则也会出现mui is not defined。

不要在plus和mui未完成初始化时调用相关API

就像在dom初始化完成前(DOMContentLoaded)去操作dom,就会报错是一样的道理。
plus和mui都需要初始化,在初始化完成后调用再调用。
一般我们在plusready的回调事件里调用plus api。
        document.addEventListener('plusready',function () {
        // 在这里调用plus api
    },false);

执行更高效的写法是这样,如果plus已经存在,就直接使用

        function plusReady(){
            // 在这里调用plus api
        }
        if(window.plus){
            plusReady();
        }else{
            document.addEventListener('plusready',plusReady,false);
        }
mui框架对此进行了封装,写法更简单:
        mui.plusReady(function(){
             // 在这里调用plus api
        });
事实上,mui作为一个框架,也有初始化的过程,但mui的初始化过程在DOMContentLoaded完毕后就结束了。
mui ready的写法是这样,但一般无需使用。
        mui.ready(function () {

        })

关闭Webview窗口

<span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">webview</span><span style="color:#ffffff">.</span><span style="color:#ffffff">close</span><span style="color:#ffffff">(</span><span style="color:#ffffff"> id_wvobj</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> aniClose</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> duration</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> extras </span><span style="color:#ffffff">);</span>
				</code></span>

说明:

关闭已经打开的Webview窗口,需先获取窗口对象或窗口id,并可指定关闭窗口的动画及动画持续时间。

参数:

  • id_wvobj: ( String | WebviewObject ) 必选 要关闭Webview窗口id或窗口对象
    若操作窗口对象已经关闭,则无任何效果。 使用窗口id时,则查找对应id的窗口,如果有多个相同id的窗口则操作最先打开的窗口,若没有查找到对应id的WebviewObject对象,则无任何效果。
  • aniClose: AnimationTypeClose ) 可选 关闭Webview窗口的动画效果
    如果没有指定关闭窗口动画,则使用默认值“auto”,即使用显示时设置的窗口动画相对应的关闭动画。
  • duration: ( Number ) 可选 关闭Webview窗口动画的持续时间
    单位为ms,如果没有设置则使用显示窗口动画时间。
  • extras: WebviewExtraOptions ) 可选 关闭Webview窗口扩展参数
    可用于指定Webview窗口动画是否使用图片加速。

返回值:

void : 无

示例:

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>Webview Example</title>
	<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}

// 关闭自身窗口
function closeme(){
	var ws=plus.webview.currentWebview();
	plus.webview.close(ws);
}
	</script>
	</head>
	<body>
		关闭Webview窗口<br/>
		<button onclick="closeme()">close</button>
	</body>
</html>
			
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值