目录
应用管理
summer.getAppVersion()
获取当前APP的版本信息
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
语法:
summer.getAppVersion()
返回值:
返回值是字符串类型,其结构是
{
"versionCode":"3" //对于android,是对应配置文件中的android-versioncode值,对于ios则是对应配置文件中的version值
"versionName":"1.0.3" //无论android还是ios,都是对应配置文件界面中的version值
}
对应配置文件中的值:
示例代码:
var versionInfo = summer.getAppVersion();//返回字符串类型
var version = JSON.parse(versionInfo);//转换为json
alert(version.versionCode)//对于android,结果:"3";对于ios,结果是1.0.3
alert(version.versionName)//结果:"1.0.3"
summer.upgradeApp()
升级app
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
语法:
summer.upgradeApp(json, successFn, errorFn);
//例如
summer.upgradeApp({
url:""
},function(){
},function(){
})
参数:
- json:是该方法所需要的参数,核心参数为url
- url : 更新文件地址
- timeout:超时时间,单位秒
- successFn:是成功回调
- errorFn:是失败回调
返回值:
正确回调返回值是一个json,其格式如下:
{
state:"1",//下载的状态取值范围0 | 1, 0表示未下载完 1表示下载完成
savePath:''//下载app后的保存路径
}
错误回调返回值是一个json,其格式如下:
{
msg:"服务器地址链接超时",//下载失败的原因
}
android示例代码:
summer.upgradeApp({
url:"http://来个apk的下载地址吧.apk"
},function(ret){
},function(ret){
})
ios示例代码:
summer.upgradeApp({
url:"itms-services://?action=download-manifest&url=https://你的plist下载路径.plist"
},function(ret){
},function(ret){
})
补充说明:
该方法支持
iOS系统,Android系统
summer.getVersion()
该方法获取应用内资源版本
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
语法:
summer.getVersion(json)
参数:
- url:检查版本的地址
返回值:
类型:字符串
默认值:无
描述:window 名字,不能为空字符串
summer.upgrade()
升级app资源
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
语法:
summer.upgrade(json, successFn, errorFn);
//例如
summer.upgrade({
url:""
},function(){
},function(){
})
参数:
- json:是该方法所需要的参数,核心参数为url
- url : 更新文件地址
- timeout:超时时间,单位秒
- successFn:是成功回调
- errorFn:是失败回调
返回值:
正确回调返回是一个json,其格式如下:
{
state:"1",//下载的状态取值范围0 | 1, 0表示未下载完 1表示下载完成
savePath:''//下载app后的保存路径
}
错误回调返回值是一个json,其格式如下:
{
msg:"服务器地址链接超时",//下载失败的原因
}
示例代码:
summer.upgrade({
"url":"http://123.103.9.205:8090/mwap/"+jsonVersionInfoOfServer.download,
showProgress:true,
"version":{
versionCode:jsonVersionInfoOfServer.versionCode,//此处需指定versionCode,versionCode为服务器端最新安装包的版本号
versionName:jsonVersionInfoOfServer.versionName//此处需指定versionName为最新版本
}
}, function(res){
if(res.isfinish == true){
summer.openWin({ //下载完成后重新打开页面,为已更新的新版本
id:'index', //此处id不能为root
url:'index.html',
isKeep:false
});
}
},function(){
alert("app升级error");
})
补充说明:
该方法支持
iOS系统,Android系统
summer.installApp() (暂不支持)
安装应用,如果是苹果的AppStore应用地址,将会跳转到AppStore应用详情页面
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
语法:
summer.installApp({params})
参数:
- json
- appUri:类型:字符串,默认值:无,描述:目标应用的资源文件标识。Android上为apk包的本地路径,如file://xxx.apk;iOS上为应用安装包对应的plist文件地址
示例代码:
//Android用法:
summer.installApp({
appUri: 'file://xx/xxx.apk'
});
//iOS用法:
summer.installApp({
appUri: "itms-services://?action=download-manifest&url=https://你的plist下载路径.plist"//安装包对应plist地址
});
可用性:
iOS系统,Android系统
可提供的1.0.0及更高版本
summer.uninstallApp() (暂不支持)
卸载应用,只支持Android
语法:
summer.uninstallApp({params})
参数:
- json
- packageName:类型:字符串,默认值:无,描述:要卸载的应用的包名
示例代码:
summer.uninstallApp({
packageName: 'com.yourcompany.yourapp'
});
补充说明:
无
可用性:
仅Android系统
summer.openApp()
打开app
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
语法:
summer.openApp(json);
参数:
- json
- ios_appid :ios系统打开app的urlScheme,必须在config.xml中进行白名单配置(需要打开应用的urlScheme配置在queriesSchemes里)。
详情参考:https://moli.yonyoucloud.com/molidoc/docs/summer/185#打开App配置
第8条.原生应用跳转控制。 - android_packagename:安卓系统app的包名
- params:参数
- callback:成功或失败回调执行的函数
- ios_appid :ios系统打开app的urlScheme,必须在config.xml中进行白名单配置(需要打开应用的urlScheme配置在queriesSchemes里)。
示例:
summer.openApp({
"ios_appid" : "weixin",
"android_packagename" : "com.tencent.mm",
"type":"scheme", //summer 应用直接打开传值需要配置上此参数。
"param" : {},(暂不支持)
"callback" : "mycallback()"
});
function mycallback(args){
$summer.alert(args); //args:{"status":"打开成功","code":"1"}
}
type 用法详情见: https://github.com/initKing/Summer.openApp
用手机safari浏览器 打开百度示例:
summer.openApp({
"ios_appid" : "http",
"query" : "www.baidu.com",
"param" : {
'name' : ''
}, //文件名
"callback" : function() {
alert("success");
}
})
可用性:
iOS系统,Android系统
summer.exitApp()
退出app
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
语法:
summer.exitApp()
参数:
无
返回值:
无
示例代码:
function btn0_click(){
if(confirm("真的要退出应用吗?")){
summer.exitApp();
}
}
说明:
仅适用于android
应用权限
summer.getPermission()(仅Android)
发起权限申请, Andriod6.0及以上版本使用某项权限时需要先调用此方法发起权限申请,
注意:可以重复申请,已经有权限的不会弹框
语法:
summer.getPermission([], function(){
}, function(){
})
参数:
- []:所需权限参数,多个权限用逗号分隔
- successFn:成功回调函数
- errorFn:失败回调函数
示例:
var params = ["android.permission.READ_PHONE_STATE","android.permission.ACCESS_FINE_LOCATION"];
summer.getPermission(params, function(args){
alert(args); //成功返回OK
}, function(args){
alert(args); //失败返回illegal access
})
android权限申请说明
对于6.0以下的权限及在安装的时候,根据权限声明产生一个权限列表,用户只有在同意之后才能完成app的安装,造成了我们想要使用某个app,就要默默忍受其一些不必要的权限(比如是个app都要访问通讯录、短信等)。而在6.0以后,我们可以直接安装,当app需要我们授予不恰当的权限的时候,我们可以予以拒绝。当然你也可以在设置界面对每个app的权限进行查看,以及对单个权限进行授权或者解除授权。
新的权限机制更好的保护了用户的隐私,Google将权限分为两类,一类是Normal Permissions,这类权限一般不涉及用户隐私,是不需要用户进行授权的,比如手机震动、访问网络等;另一类是Dangerous Permission,一般是涉及到用户隐私的,需要用户进行授权,比如读取sdcard、访问通讯录等。
需要用户申请的Dangerous Permission权限:
group:android.permission-group.CONTACTS
permission:android.permission.WRITE_CONTACTS
permission:android.permission.GET_ACCOUNTS
permission:android.permission.READ_CONTACTS
group:android.permission-group.PHONE
permission:android.permission.READ_CALL_LOG
permission:android.permission.READ_PHONE_STATE
permission:android.permission.CALL_PHONE
permission:android.permission.WRITE_CALL_LOG
permission:android.permission.USE_SIP
permission:android.permission.PROCESS_OUTGOING_CALLS
permission:com.android.voicemail.permission.ADD_VOICEMAIL
group:android.permission-group.CALENDAR
permission:android.permission.READ_CALENDAR
permission:android.permission.WRITE_CALENDAR
group:android.permission-group.CAMERA
permission:android.permission.CAMERA
group:android.permission-group.SENSORS
permission:android.permission.BODY_SENSORS
group:android.permission-group.LOCATION
permission:android.permission.ACCESS_FINE_LOCATION
permission:android.permission.ACCESS_COARSE_LOCATION
group:android.permission-group.STORAGE
permission:android.permission.READ_EXTERNAL_STORAGE
permission:android.permission.WRITE_EXTERNAL_STORAGE
group:android.permission-group.MICROPHONE
permission:android.permission.RECORD_AUDIO
group:android.permission-group.SMS
permission:android.permission.READ_SMS
permission:android.permission.RECEIVE_WAP_PUSH
permission:android.permission.RECEIVE_MMS
permission:android.permission.RECEIVE_SMS
permission:android.permission.SEND_SMS
permission:android.permission.READ_CELL_BROADCASTS