app


简介

app对象指的是当前应用描述。一个应用有且仅有一个app对象。

属性(String):

  • rd.app.platformName : 系统名称
  • rd.app.platformVersion : 系统版本
  • rd.app.deviceModel : 设备模型名称
  • rd.app.deviceName : 设备名称

常量属性(Number):

  • rd.app.STATUS_SUCESS : 值为1 回调成功
  • rd.app.STATUS_FAILED : 值为0 回调失败

签名类型(String):

  • rd.app.SIGNATURE_MD5 : 值为"md5" 表示获取md5格式
  • rd.app.SIGNATURE_SHA1 : 值为"sha1" 表示获取sha1格式

方法:

Android

iOS

公有

downloadFile


下载文件

rd.app.downloadFile(url);
说明:

使用系统浏览器下载

参数:
  • url: ( String ) 必选 下载文件地址
返回值:

示例:
rd.app.downloadFile('http://192.168.168.111/1.apk');

getSignature


获取app签名的指纹。

rd.app.getSignature(type);
说明:

获取app签名的指纹信息,仅支持MD5和SHA1格式。type不传或是不认识的格式,将默认返回md5格式的指纹。

参数:
返回值:
  • 签名指纹 (string)
示例:
var md5 = rd.app.getSignature(rd.app.SIGNATURE_MD5);
var sha1 = rd.app.getSignature(rd.app.SIGNATURE_SHA1);

exit


rd.app.exit();

退出app。

说明:

直接退出app,而没有任何提示。

参数:

返回值:

示例:
rd.app.exit();

isCrossWalk


rd.app.isCrossWalk();
说明:

判断引擎使用的框架是crosswalk还是webview

参数:

返回值:
  • true或者false(Boolean)
示例:
if(rd.app.isCrossWalk()){
   alert("crosswalk");
}else{
   alert("webview");
}

setHardwareEnabled


rd.app.setHardwareEnabled(enabled);
说明:

设置全局硬件加速,作用于app中所有视图。

参数:
  • enabled: ( [bool] ) true开启,false关闭
返回值:

示例:
rd.app.setHardwareEnabled(true);    

setStatusBarStyle


设置状态栏文字颜色

rd.app.setStatusBarStyle(style);
说明:

设置app状态栏文字颜色。

参数:
  • style: ( Number ) 可选,默认为黑色,0 表示黑色。1 表示白色
返回值:

无返回值

示例:
rd.app.setStatusBarStyle(1);

installApp


安装一个app

rd.app.installApp(path);
说明:

调用本地安装安装功能安装一个app。

参数:
  • path: ( [String] ) 必选 应用地址
    • Android上为apk包的本地路径,支持协议路径
    • iOS上为AppStore下载地址,或者企业发布地址
返回值:

示例:

Android:

rd.app.installApp('/sdcard/1.apk');
rd.app.installApp('res://1.apk');

iOS:

rd.app.installApp('http://appstore.com/pages');

openApp


启动一个app

rd.app.openApp(params, callback)
说明:

启动一个app

参数:
  • params: ( appParams ) 必选 打开参数
  • callback: ( callback ) 可选 app关闭时的回调(仅支持android)
返回值:

示例:
var params = {
        'action':'android.intent.action.CALL',
        'uri':'tel:18866665555'
    }

rd.app.openApp(params, function(ret, retVals){
                            if (ret == rd.app.STATUS_SUCESS) {
                                alert(retVals);
                            } else if (ret = rd.app.STATUS_FAILED) {
                                //
                            }});

isAppInstalled


判断设备上是否已安装指定app

*注iOS需配置scheme

rd.app.isAppInstalled(param, callback)
说明:

判断设备上是否已安装指定app

参数:
  • param: ( [String] ) 必选 应用程序标识,iOS中参数为:被打开app的Scheme 后面加 "://"。Android下为应用的包名,如果为空将不会执行
  • callback: ( isAppInstalledCallback ) 必选 判断完成后的回调,如果为空将不会执行
返回值:

示例:
rd.app.isAppInstalled('weixin://', function(isInstalled){......});
rd.app.isAppInstalled('com.xhrd.mobile.hybrid', function(isInstalled){......});

isFullScreen


判断app是否全屏显示

rd.app.isFullScreen();
说明:

app是否全屏

参数:

返回值:
  • app是否全屏(boolean) 全屏为true,否则为false
示例:
var isFullScreen = rd.app.isFullScreen();

setStatusBarBackgroundColor


设置状态栏背景颜色

rd.app.setStatusBarBackgroundColor(color);
说明:

设置app状态栏背景颜色;Android要求版本4.4以上。

参数:
  • color: ( String ) 必选 背景颜色 默认黑色
返回值:

无返回值

示例:
rd.app.setStatusBarBackgroundColor('#FFFFFF');

cleanCache


清空cache目录

rd.app.cleanCache();
说明:

清空cache://下的所有内容

参数:

返回值:

示例:
rd.app.cleanCache();

getEngineVersion


获取引擎版本号

rd.app.getEngineVersion();
说明:

获取引擎版本号

参数:

返回值:
  • 版本号(Number)
示例:
var engineVersion = rd.app.getEngineVersion();

getApplicationInfo


获取app配置信息

rd.app.getApplicationInfo();
说明:

获取app配置信息,此app配置信息来自application.xml。

参数:

返回值:

appInfo:(JSON)

{
    "id": 1,
    "name": "HybridApp",
    "description": "This is first Hybrid app", 
    "author": {
        "name":"DT",
        "email": "app@163.com", 
        "tel": "1331011466",
        "address": "北京市海淀区永佳北路6号"
    }, 
    "version": "01.01.001",
    "bgcolor": "#000000", 
    "entry": "main",
    "appkey": ""
}
字段说明:
  • id:系统分配的id号
  • name:app名称
  • description:描述信息
  • author:作者信息
    • name:作者名字
    • email:邮箱
    • tel:电话
    • address:地址
  • version:版本号
  • bgcolor:全局背景颜色
  • entry:程序入口(默认开启的component)
  • appkey:保留
示例:
var appInfo = rd.app.getApplicationInfo();

checkUpdate


检查应用更新

rd.app.checkUpdate(callback);
说明:

平台功能

参数:

示例:
rd.app.checkUpdate(function(updateType, info){
                            if (updateType==-1) {
                                alert('请求失败');
                            } 
                            else if (updateType==0) {
                                alert('应用无更新');
                            } 
                            else if (updateType==1) {
                                alert('应用有新版本更新');
                            }
                            else if (updateType==2) {
                                rd.app.incrementInstall(info.url,info.incrementId);
                            }});

checkUpdateCallback


检查更新回调

function checkUpdateCallback(updateType,info) {

}
说明:

参数:
  • updateType: ( string ) 更新类型,-1请求失败,0无更新,1应用有新版本,2增量更新
  • info: ( updateInfo ) 更新信息

updateInfo


更新信息参数

{
    property String description,
    property String url,
    property String channel,
    property String incrementId
}
说明:

属性:
  • description : ( String ) 更新描述
  • url : ( String ) 更新应用下载地址
  • channel : ( String ) 更新渠道 1 369平台地址 2 其他地址
  • incrementId : ( String ) 增量更新id

incrementInstall


下载安装应用更新包

rd.app.incrementInstall(url,incrementId);
说明:

平台功能,会自动下载应用更新包,自动安装,应用窗口会重置

参数:
  • url : ( String ) 下载的地址
  • incrementId : ( String ) 增量更新id
返回值:

示例:
rd.app.checkUpdate(function(updateType, info){
                            if (updateType==-1) {
                                alert('请求失败');
                            } 
                            else if (updateType==0) {
                                alert('应用无更新');
                            } 
                            else if (updateType==1) {
                                alert('应用有新版本更新');
                            }
                            else if (updateType==2) {
                                rd.app.incrementInstall(info.url,info.incrementId);
                            }});

isAppInstalledCallback


判断完成后,回调此函数。

function isAppInstalledCallback (isInstalled) {

}
说明:

参数:
  • isInstalled: ( boolean ) true为已安装,否则未安装

appParams


开启一个app的参数结构。

{
    property JsonArray params,
    property String iosUrl,
    property String action,
    property String mime,
    property String uri
}
说明:

用于打开一个app参数结构,参见openApp

属性:
  • params : ( JsonArray ) (可选项)传递到要打开的app的参数数组,结构为[{key:"key1", value:"value1"},{key:"key2", value:"value2"},......]
  • iosUrl : ( String ) (可选项)传递到打开app的url,Scheme 后面加 "://",后面可以根据“被打开app”自行拼接参数。若iosUrl内有参数,params会拼接在iosUrl后面,并用"?"分割,若iosUrl内无参数直接将params拼接在iosUrl后面,若params无参数,则不做拼接。(iOS平台使用,iOS下必传)
  • action : ( String )(可选项)打开app的包名或action(Android平台使用,Android下必传)
  • mime : ( String ) (可选项)指定打开app的响应数据类型,如:"image/png"(Android平台使用)
  • uri : ( String ) (可选项)指定打开app响应的uri(Android平台使用)
示例:
andriod:
1、打开相机
var openAppParams = {
            'action':'android.media.action.IMAGE_CAPTURE'
        }
2、打电话
var openAppParams = {
            'action':'android.intent.action.CALL',
            'uri':'tel:18866665555'
        }
3、打开网页
var openAppParams = {
            'action':'android.intent.action.VIEW',
            'uri':'https://www.baidu.com'
        }

打开app关闭后的回调


openApp打开的app在关闭返回后的回调。(仅支持Android)

function openAppCallback (ret, retVals) {
    if (ret == rd.app.STATUS_SUCESS) {
        alert(JSON.stringify(retVals));
    } else if (ret = rd.app.STATUS_FAILED) {
        //无
    }
}
说明:

打开的app在关闭时有时会返回数据,比如:系统相册。这里就需要使用到回调判断是否有返回值。

参数:
  • ret : ( Number ) 打开的app关闭时返回的状态值,有STATUS_SUCESS和STATUS_FAILED两种。参见状态值
  • retVals : ( resultData ) 第三方app返回的数据,现只支持String类型数据。

打开app关闭后的回调的数据


打开app关闭后的回调的数据

{
    "data": "uri", 
    "extras": {
        "key1": "value1",
        "key2": "value2",
            .
            .
            .
    }
}
说明:

打开app关闭后的回调的数据, 比如:打开系统相册后,返回选中的图片uri。

参数:
  • data : ( String ) uri,目标路径,比如照片存储路径
  • extras : ( JsonObject ) 附加数据
    • key : ( String ) 、value : (String) 键值对