runtime 运行环境
Runtime模块管理运行环境,可用于获取当前运行环境信息、与其它程序进行通讯等。通过plus.runtime可获取运行环境管理对象。
属性:
appid: 当前应用的APPID
arguments: 第三方程序调用时传递给程序的参数
channel: 应用的市场推广渠道标识
launcher: 应用启动来源
origin: 应用安装来源
version: 客户端的版本号
innerVersion: 客户端5+运行环境的版本号
launchLoadedTime: 获取当前应用首页加载的时间
processId: 获取当前应用的进程标识
startupTime: 获取当前应用的启动时间
方法:
getProperty: 获取指定APPID对应的应用信息
install: 安装应用
quit: 退出客户端程序
restart: 重启当前的应用
setBadgeNumber: 设置程序快捷方式上显示的提示数字
openURL: 调用第三方程序打开指定的URL
openFile: 调用第三方程序打开指定的文件
launchApplication: 调用第三方程序
isApplicationExist: 判断第三方程序是否已存在
对象:
WidgetOptions: JSON对象,应用安装参数
WidgetInfo: JSON对象,应用信息
OpenFileOptions: JSON对象,打开文件参数
ApplicationInf: JSON对象,打开第三方程序参数
回调方法:
InstallSuccessCallback: 安装应用成功回调函数
InstallErrorCallback: 安装应用失败回调函数
GetPropertyCallBack: 获取应用属性成功回调函数
OpenErrorCallback: 打开本地文件或URL失败回调函数
LaunchErrorCallback: 调用第三方程序失败回调函数
权限:
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 : 无
Hello H5+title>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>
header>