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 : 無
<!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" onclick="updateApp()">WGTU Update</li-->
</ul>
</div>
<div id="output">
Runtime管理程序運行時環境,可用於獲取程序的各種信息、與第三方程序通訊等。
</div>
</body>
</html>