目录
网络通信
summer.writeConfig()
与服务器服务处理,写配置文件
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
语法
summer.writeConfig({"host" : "10.2.112.58", //向configure中写入host键值"port" : "8080" //向configure中写入ip键值})
参数:
- host:主机地址
- port:主机端口
示例代码:
summer.writeConfig({"host" : "10.2.112.58","port" : "8080"})
summer.readConfig()
与服务器服务处理,读配置文件。
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
语法:
summer.readConfig(key) //获取Configure中key的键值
参数:
- key:key值
示例代码:
var host = summer.readConfig("host");
summer.setAppContext()
设置应用上下文信息,通常用于调用MAServer或EMM转发请求时
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
语法
summer.setAppContext({"appid" : "应用或子应用ID","version" : "应用或子应用版本","userid" : "EMM用户ID"})
参数(其中可选参数根据NC需要设置):
- appid:应用或子应用ID,存在子应用调用MAServer时必需设置
- version:应用或子应用版本,存在子应用调用MAServer时必需设置
- userid:用户ID,调用EMM向MAServer转发请求时必需设置
- password:用户密码 (可选)
- token:NC token (可选)
- groupid:NC groupid (可选)
- devid:NC devid (可选)
- massotoken:NC massotoken (可选)
- funcid:NC funcid (可选)
- tabid:NC tabid (可选)
- platform:NC platform (可选)
- sessionid:NC sessionid (可选)
示例代码:
summer.setAppContext({"appid" : "应用或子应用ID","version" : "应用或子应用版本","userid" : "EMM用户ID"})
summer.openHTTPS()
开启HTTPS,通常在调用callAction之前执行
注意1:只需调用一次即可
注意2:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
语法:
summer.openHTTPS({"ishttps" : "true" //是否开启https传输})
参数:
- ishttps :是否开启https传输;
示例代码:
summer.openHTTPS({"ishttps" : "true" //是否开启https传输});summer.callAction({"appid" : "xxx", //当前应用id"viewid" : "xxx.xxx.xx", //后台带包名的Controller名"action" : "methodName", //方法名"params" : {a:1,b:2},//自定义参数"callback" : "mycallback()", //请求回来后执行的js方法"error" : "myerror()", //失败回调的js方法"header" : {"Content-Type" : "application/x-www-form-urlencoded","User-Agent" : "imgfornote"}});
summer.callAction()
访问MA服务器,调用MA上指定Controller类的指定方法
存在子应用调用MAServer或EMM时需要通过summer.setAppContext()设置应用上下文信息
注意: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.callAction({"appid" : "xxx", //当前应用id"viewid" : "xxx.xxx.xx", //后台带包名的Controller名"action" : "methodName", //方法名"params" : {a:1,b:2},//自定义参数"callback" : "mycallback()", //请求回来后执行的js方法"error" : "myerror()", //失败回调的js方法"header" : {"Content-Type" : "application/x-www-form-urlencoded","User-Agent" : "imgfornote"}});
参数:
- appid:当前应用id,即config.xml配置文件中的应用ID
- viewid:后台带包名的Controller名,即在ma/src下创建的类
- action:上述类中的方法名
- params:自定义参数,json格式
- callback:请求成功后执行的js方法
- error:请求失败后执行的js方法
- timeout:可选参数,超时时间,单位为秒
- mauploadpath:可选参数,携带文件的路径
- 多个文件批量上传时,mauploadpath参数中的多个文件用”,”分割
- 详细使用方法参阅 移动运行支撑平台(MA)-MA开发指导下的《获取手机端上传的文件流》
- 新云端打包使用此参数需要在config.xml中配置summer-plugin-upload插件
样例:<import id="summer-plugin-upload" type="web" ref="cordova"></import>
- 旧版构建中使用此参数需要勾选上传(upload)插件
- header:可选参数,请求头,值为JSON
- tp:加密,默认为des加密
- none:为不加密
- des:为des加密
- des_gzip:为des加密并压缩(暂不支持)
- aes:为aes加密(暂不支持)
示例代码:
summer.writeConfig({"host" : "10.2.112.58","port" : "8080"})summer.callAction({"appid" : "test", //当前应用id"viewid" : "com.yonyou.TestDataController", //后台带包名的Controller名"action" : "getData", //方法名"params" : "{a:123,b:465}", //自定义参数"callback" : "cbcallma()", //请求回来后执行的ActionID"error" : "errorcallma()" //失败回调的ActionId});function cbcallma(args) {alert(args);//args为MA返回的数据,类型是Json对象var result = JSON.stringify(args);$summer.alert(result);//result为字符串}function errorcallma(args) {$summer.alert(args.err_msg);alert(args.err_msg); //在打印字符串时等价于上面的方法}
summer.get()
以get的方式请求后台的数据
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
语法:
summer.get(url,param, header, successFn, errFn);
参数:
- url :String 请求的url地址;
- param :Json 传递的参数;param中的各个属性和值必须为字符串类型,不能是对象,即只能是“key”:”value”,不能是”key”:{}
- header :Json 请求声明头,header中的各个属性和值必须为字符串类型,不能是对象,即只能是“key”:”value”,不能是”key”:{}
- successFn :Json 成功的回调函数。成功的回调函数包括三部分:status 响应状态200;data 返回的数据,
字符串格式,需要转换成json;headers 成功返回的响应头 Json。 - errFn :Json 失败的回调函数。失败的回调函数包括三部分:status 响应状态;error 服务器返回的错误信息,字符串格式;
headers 成功返回的响应头 Json。
超时处理:
1、全局
设置ajax请求超时时间,在ajax请求调用之前,设置timeout时间,单位为毫秒。设置方法如下:window.cordovaHTTP.settings={timeout:5000};
2、单次请求
暂不支持
示例代码:
window.cordovaHTTP.settings={timeout:5000}; //设置5秒超时summer.get("https://google.com/", {id : 12,message : "test"}, {Authorization : "OAuth2: token"}, function(response) {alert(response.status);alert($summer.strToJson(response.data));}, function(response) {alert(response.error);});
summer.post()
以post的方式向后台提交数据
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
语法:
summer.post(url,param, header, successFn, errFn);
参数:
- url :String 请求的url地址;
- param :Json 传递的参数;param中的各个属性和值必须为字符串类型,不能是对象,即只能是“key”:”value”,不能是”key”:{}
- header :Json 请求声明头,header中的各个属性和值必须为字符串类型,不能是对象,即只能是“key”:”value”,不能是”key”:{}
- successFn :Json 成功的回调函数。成功的回调函数包括三部分:status 响应状态200;data 返回的数据,
字符串格式,需要转换成json;headers 成功返回的响应头 Json。 - errFn :Json 失败的回调函数。失败的回调函数包括三部分:status 响应状态;error 服务器返回的错误信息,字符串格式;
超时处理:
1、全局
设置ajax请求超时时间,在ajax请求调用之前,设置timeout时间,单位为毫秒。设置方法如下:window.cordovaHTTP.settings={timeout:5000};
2、单次请求
暂不支持
示例代码:
window.cordovaHTTP.settings={timeout:5000}; //设置5秒超时summer.post("https://google.com/", {id : 12,message : "test"}, {Authorization : "OAuth2:token"}, function(response) {alert(response.status);alert(response.data);}, function(response) {alert(response.error);});
summer.ajax()
通过http请求远程数据
注意:Android 6以上版本使用此API时需要手动申请权限,权限申请参考 Summer API -> 应用管理 -> 应用权限 下的 API summer.getPermission()(仅Android)
Android需申请的权限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
语法:
summer.ajax(json, successFn, errFn);
参数:
- json :Json 请求传递的内容;
- type :请求的方式’get’或者’post’;
- url :String 请求的url地址;
- param :请求传递的参数;param中的各个属性和值必须为字符串类型,不能是对象,即只能是”key”:”value”,不能是”key”:{};
- header :请求声明头,header中的各个属性和值必须为字符串类型,不能是对象,即只能是”key”:”value”,不能是”key”:{};
- successFn :Json 成功的回调函数。成功的回调函数包括三部分:status 响应状态200;data 返回的数据,
字符串格式,需要转换成json;headers 成功返回的响应头 Json。 - errFn :Json 失败的回调函数。失败的回调函数包括三部分:status 响应状态;error 服务器返回的错误信息,字符串格式;
header示例:
header : {
“Authorization” : “OAuth2:token”,
“Content-Type” : “application/json”
}
超时处理:
1、全局
设置ajax请求超时时间,在ajax请求调用之前,设置timeout时间,单位为毫秒。设置方法如下:window.cordovaHTTP.settings={timeout:5000};
2、单次请求
暂不支持
示例代码:
window.cordovaHTTP.settings={timeout:5000}; //设置5秒超时summer.ajax({type : "post",url : "https://google.com/",param : {id : 12,message : "test"},header : {"Content-Type" : "application/json"}}, function(response) {alert(response.status);alert(response.data);}, function(response) {alert(response.error);});