目录
网络通信
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);
});