html5+ Runtime-运行环境

runtime 运行环境

Runtime模块管理运行环境,可用于获取当前运行环境信息、与其它程序进行通讯等。通过plus.runtime可获取运行环境管理对象。

属性:

方法:

对象:

回调方法:

权限:

5+功能模块(permissions)

{
// ...
"permissions":{
	// ...
	"Runtime": {
		"description": "运行环境"
	}
}
}

WidgetOptions

JSON对象,应用安装参数

说明:

可通过对象设置安装的应用是否进行appid校验、版本号校验等。

属性:

  • force: _(Boolean 类型 )_是否强制安装

    true表示强制安装,不进行版本号的校验;false则需要版本号校验,如果将要安装应用的版本号不高于现有应用的版本号则终止安装,并返回安装失败。 仅安装wgt和wgtu时生效,默认值 false。

WidgetInfo

JSON对象,应用信息

属性:

  • appid: _(String 类型 )_应用的APPID

  • version: _(String 类型 )_应用的版本号

  • name: _(String 类型 )_应用的名称

  • description: _(String 类型 )_应用描述信息

  • author: _(String 类型 )_应用描述信息

  • email: _(String 类型 )_开发者邮箱地址

  • license: _(String 类型 )_应用授权描述信息

  • licensehref: _(String 类型 )_应用授权说明链接地址

  • features: _(String[] 类型 )_应用许可特性列表

OpenFileOptions

JSON对象,打开文件参数

属性:

  • pname: _(String 类型 )_优先使用的程序包名

    如果指定包名的程序已经安装,则调用其打开文件,若程序不支持打开文件则触发错误回调。 如果指定包名的程序未安装,则弹出系统支持打开此文件的列表,由用户选择程序打开。

  • popover: _(json 类型 )_弹出系统选择程序界面指示区域

    JSON对象,格式如{top:10;left:10;width:200;height:200;},所有值为像素值,左上坐标相对于容器webview的位置。仅在iPad设备平台有效。

ApplicationInf

JSON对象,打开第三方程序参数

属性:

  • pname: _(String 类型 )_第三方程序包名

    仅Android平台支持,表示程序的包名,其它平台忽略此属性值。

  • action: _(String 类型 )_程序的操作行为

    Android平台上与系统的action值一致;iOS平台为要调用程序的URLScheme格式字符串。

  • extra: _(JSON 类型 )_调用程序的参数

    仅Android平台支持,为JSON格式,用于传递给要调用程序的参数,如extra:{url:“http://www.html5plus.org”}。

InstallSuccessCallback

安装应用成功回调函数

void onSuccess(widgetInfo){
	// Code here
}

参数:

  • widgetInfo: ( WidgetInfo ) 必选
    应用信息,参见:WidgetInfo

返回值:

void : 无

InstallErrorCallback

安装应用失败回调函数

void onError(error){
	// Handle the error
}

参数:

  • error: ( DOMException ) 必选
    安装失败的错误信息

返回值:

void : 无

GetPropertyCallBack

获取应用属性成功回调函数

void onGetPropertyCB(widgetInfo){
	// Code here
}

参数:

  • widgetInfo: ( WidgetInfo ) 必选
    应用信息,参见:WidgetInfo

返回值:

void : 无

OpenErrorCallback

打开本地文件或URL失败回调函数

void onError(error){
	// Handle the error
}

参数:

  • error: ( DOMException ) 必选
    打开操作失败的错误信息

返回值:

void : 无

LaunchErrorCallback

调用第三方程序失败回调函数

void onError(error){
	// Handle the error
}

参数:

  • error: ( DOMException ) 必选
    操作失败的错误信息

返回值:

void : 无

<!DOCTYPE HTML>
<html>

	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
		<meta name="HandheldFriendly" content="true" />
		<meta name="MobileOptimized" content="320" />
		<title>Hello H5+</title>

		<script type="text/javascript">
			function getVersion() {
				console.log("程序版本号:" + plus.runtime.version + "\n内核版本号:" + plus.runtime.innerVersion);
			}

			function getArguments() {
				console.log("启动方式: " + plus.runtime.launcher + "\n启动参数: " + plus.runtime.arguments);
			}

			function restartApp() {
				plus.runtime.restart();
			}

			function getWidgetInfo() {
				plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {
					//appid属性
					var wgtStr = "appid:" + wgtinfo.appid;
					//version属性
					wgtStr += "\nversion:" + wgtinfo.version;
					//name属性
					wgtStr += "\nname:" + wgtinfo.name;
					//description属性
					wgtStr += "\ndescription:" + wgtinfo.description;
					//author属性
					wgtStr += "\nauthor:" + wgtinfo.author;
					//email属性
					wgtStr += "\nemail:" + wgtinfo.email;
					//licence属性
					wgtStr += "\nlicense:" + wgtinfo.license;
					//licensehref属性
					wgtStr += "\nlicensehref:" + wgtinfo.licensehref;
					//features 属性
					wgtStr += "\nfeatures:" + wgtinfo.features;
					console.log(wgtStr);
				});
			}

			function setBadge() {
				plus.runtime.setBadgeNumber(50);
				console.log("设置程序图标右上角显示的提示数字为50\n请返回桌面查看");
				if (plus.os.name == "iOS") {
					outLine('*如果无法设置提示数字,请到"设置"->"通知"中配置应用在通知中心显示!');
				} else {
					outLine("注:仅支持小米(MIUI v5),其它设备暂不支持此功能!");
				}
			}

			function clearBadge() {
				plus.runtime.setBadgeNumber(0);
				console.log("清除程序图标右上角显示的提示数字\n请返回桌面查看");
				if (plus.os.name == "iOS") {
					outLine('如果无法清除提示数字,请到"设置"->"通知"中配置应用在通知中心显示!');
				} else {
					outLine("注:仅支持小米(MIUI v5),其它设备暂不支持此功能!");
				}
			}

			function exitApp() {
				if (plus.os.name == "Android") {
					plus.runtime.quit();
				} else {
					console.log("此平台不支持直接退出程序,请按Home键切换应用");
				}
			}

			function updateApp() {
				var url = 'http://demo.dcloud.net.cn/helloh5/update/HelloH5.wgtu';
				plus.nativeUI.showWaiting("升级中...");
				var dtask = plus.downloader.createDownload(url, {
					method: "GET"
				}, function (d, status) {
					if (status == 200) {
						console.log("Download wgtu success: " + d.filename);
						plus.runtime.install(d.filename, {}, function () {
							plus.nativeUI.closeWaiting();
							plus.nativeUI.alert("Update wgtu success, restart now!", function () {
								plus.runtime.restart();
							});
						}, function (e) {
							plus.nativeUI.closeWaiting();
							alert("Update wgtu failed: " + e.message);
						});
					} else {
						plus.nativeUI.closeWaiting();
						alert("Download wgtu failed: " + status);
					}
				});
				dtask.addEventListener('statechanged', function (d, status) {
					console.log("statechanged: " + d.state);
				});
				dtask.start();
			}

		</script>

	</head>

	<body>
		<header id="header">
			<div class="nvbt iback" onclick="back()"></div>
			<div class="nvtt">Runtime</div>
			<div class="nvbt idoc" onclick="openDoc('Runtime Document','/doc/runtime.html')"></div>
		</header>
		<div id="dcontent" class="dcontent">
			<br />
			<div class="button" onclick="clicked('runtime_launch.html',true);">
				调用第三方程序
			</div>
			<br />
			<ul class="dlist">
				<li class="ditem" onclick="getVersion()">获取版本信息</li>
				<li class="ditem" onclick="getArguments()">获取启动信息</li>
				<li class="ditem" onclick="restartApp()">重启当前应用</li>
				<li class="ditem" onclick="getWidgetInfo()">获取当前应用的基本属性</li>
				<li class="ditem" onclick="setBadge()">设置程序图标右上角数字</li>
				<li class="ditem" onclick="clearBadge()">清除程序图标右上角数字</li>
				<li class="ditem" onclick="exitApp()">退出当前应用</li>
				<!--li class="ditem" οnclick="updateApp()">WGTU Update</li-->
			</ul>
		</div>
		<div id="output">
			Runtime管理程序运行时环境,可用于获取程序的各种信息、与第三方程序通讯等。
		</div>
	</body>

</html>

发布了33 篇原创文章 · 获赞 6 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41961749/article/details/82979344