目录

$service

与服务器服务处理

$service.writeConfig()

写配置文件

语法

  1. $service.writeConfig({
  2. "host" : "10.2.112.58", //向configure中写入host键值
  3. "port" : "8080" //向configure中写入port键值
  4. })
  • key-value键值对

实例

  1. $service.writeConfig({
  2. "host" : "10.2.112.58", //向configure中写入host键值
  3. "port" : "8080" //向configure中写入port键值
  4. })

$service.openHTTPS()

开启HTTPS,通常在调用callAction、post、get之前执行

语法

  1. $service.openHTTPS({
  2. "ishttps" : "true"//是否开启https传输
  3. })

参数

  • ishttps:是否开启https传输

实例1:callAction开启HTTPS

  1. $service.openHTTPS({
  2. "ishttps" : "true"//是否开启https传输
  3. })
  4. $service.callAction({
  5. "viewid" : "xxx.xxx.xx", //后台带包名的Controller名
  6. "action" : "methodName", //方法名,
  7. "params" : {
  8. "a" : 1,
  9. "b" : 2
  10. }, //自定义参数
  11. "autoDataBinding" : true, //请求完毕后,是否进行数据绑定,如果没有该属性,则默认不绑定。
  12. "contextmapping" : "fieldPath", //将返回结果映射到指定的Context字段上,如果没有该属性,则默认为替换整个Context
  13. "callback" : "mycallback()", //请求回来后执行的js方法
  14. "error" : "myerror()"//失败回调的js方法
  15. })

实例2:post、get开启HTTPS

  1. $service.openHTTPS({
  2. "ishttps" : "true"//是否开启https传输
  3. })
  4. var url = "http://www.dnetzj.com/httpclient/nethomersssearch";
  5. $service.get({
  6. "url" : url,
  7. "callback" : function() {
  8. $service.call("UMJS.hideLoadingBar", {});
  9. var result = $ctx.param("result");
  10. //get和post的CallBack中获取返回结果都从result中获取
  11. result = $stringToJSON(result);
  12. //将字符串转换成JSON对象
  13. $alert("CountPage:" + result.CountPage);
  14. }
  15. });
  1. $service.openHTTPS({
  2. "ishttps" : "true"//是否开启https传输
  3. })
  4. var args = {};
  5. args["url"] = "http://academy.yonyou.com/api/loginLx.ashx";
  6. args["data"] = {
  7. key : "6480-4230-27FD-8AA0",
  8. user : "apitest",
  9. pwd : "123456"
  10. };
  11. args["callback"] = "postCallback()";
  12. $service.post(args);
  13. function postCallback() {
  14. $alert("JS调用Post请求");
  15. $alert($ctx.getString());
  16. var result = $ctx.param("result");
  17. // CallBack中获取返回结果都从result中获取
  18. $alert(result);
  19. //result是字符串
  20. result = $stringToJSON(result);
  21. //将字符串转换成JSON对象
  22. if (result.status == false || result.status == "false") {
  23. alert("result.status == " + result.status + " " + "result.errCode == " + result.errCode + " " + "result.errMsg == " + result.errMsg);
  24. } else if (result.status == true || result.status == "true") {
  25. alert("result.status == " + result.status + " " + "result.userName == " + result.userName);
  26. }
  27. }

$service.callAction()

访问MA服务器,调用MA上指定Controller类的指定方法

语法

  1. $service.callAction({
  2. "viewid" : "xxx.xxx.xx", //后台带包名的Controller名
  3. "action" : "methodName", //方法名,
  4. "params" : {
  5. a : 1,
  6. b : 2
  7. }, //自定义参数
  8. "autoDataBinding" : true, //请求完毕后,是否进行数据绑定,如果没有该属性,则默认不绑定。
  9. "contextmapping" : "fieldPath", //将返回结果映射到指定的Context字段上,如果没有该属性,则默认为替换整个Context
  10. "callback" : "mycallback()", //请求回来后执行的js方法
  11. "error" : "myerror()", //失败回调的js方法
  12. "header" : {
  13. "Content-Type" : "application/x-www-form-urlencoded",
  14. "User-Agent" : "imgfornote"
  15. }
  16. })

参数

  • viewid:后台带包名的Controller名,即在src下创建的类
  • action:上述类中的方法名
  • params:自定义参数,json格式
  • autoDataBinding: 请求结束后,是否进行数据绑定,如果无该属性,则默认不绑定
  • contextmapping:context中字段的全路径,如果没有指定该属性,则默认为替换整个Context。
    • 取值可以为常量”none”,表示若有返回数据也将不做任何操作,即不会影响Context
    • 取值可以是带全路径的字段名,例如a,a.b, a.b.c,
    • 取值可以是{a:x,b:y},表示返回数据中的x替换Context中的a字段,返回数据中的y替换Context中的b字段
  • callback:请求成功后执行的js方法
  • error:请求失败后执行的js方法
  • timeout:可选参数,超时时间,单位为秒
  • mauploadpath:可选参数,携带文件的路径
    • 多个文件批量上传时,mauploadpath参数中的多个文件用”,”分割
    • 详细使用方法参阅 移动运行支撑平台(MA)-MA开发指导下的《获取手机端上传的文件流》
    • 使用此参数需要勾选上传(upload)插件,详见《获取手机端上传的文件流》
  • header:可选参数,请求头,值为JSON
  • tp:加密,默认为des加密
    • none:为不加密
    • des:为des加密
    • des_gzip:为des加密并压缩(暂不支持)
    • aes:为aes加密(暂不支持)

实例
【Java部分】

  1. //viewid中描述的Java类
  2. package com.yonyou;
  3. import java.util.Map;
  4. import org.json.JSONObject;
  5. import com.yonyou.uap.um.context.util.UmContextUtil;
  6. public class AppController {
  7. public String getAppId(String args) throws Exception {
  8. JSONObject json = new JSONObject(args);
  9. Map<String, String> map = UmContextUtil.transJsonToMap(json);
  10. return "{result:"hello,iuap mobile app,appid is:" + map.get("appid") + ""}";
  11. }
  12. }

【JS部分】

  1. //调用callAction
  2. $service.writeConfig({
  3. "host" : "10.2.112.58", //向configure中写入host键值
  4. "port" : "8085"//向configure中写入port键值
  5. })
  6. $service.callAction({
  7. "viewid" : "com.yonyou.AppController", //后台带包名的Controller名
  8. "action" : "getAppId", //方法名,
  9. "mydata" : "{a:123,b:465}", //自定义参数
  10. "callback" : "cbcallma()", //请求回来后执行的ActionID
  11. "error" : "errorcallma()"//失败回调的ActionId
  12. });
  13. function cbcallma() {
  14. var result = $ctx.getJSONObject().result;
  15. $alert(result);
  16. }
  17. function errorcallma(sender, args) {
  18. $alert("ERROR:" + args.err_msg); //打印MA返回的错误信息
  19. }

$service.get()

向HTTP服务器发送get请求.

语法

  1. $service.get({
  2. "url" : "www.xxx.comxxxxxx.html",
  3. "callback" : function(sender, arges) {
  4. $alert(eval(arges.result));
  5. },
  6. "header" : {
  7. "Content-Type" : "application/x-www-form-urlencoded",
  8. "User-Agent" : "imgfornote"
  9. },
  10. "timeout" : "5"
  11. })

参数

  • url:必选参数,get请求的URL
  • callback:可选参数,get请求成功的回调js方法
  • timeout: 可选参数,超时时间,单位为秒
  • header:可选参数,该参数对应一个json,方便开发者设置请求的header

实例

  1. var url = "http://www.dnetzj.com/httpclient/nethomersssearch";
  2. $service.get({
  3. "url" : url,
  4. "callback" : function() {
  5. $service.call("UMJS.hideLoadingBar", {});
  6. var result = $ctx.param("result");
  7. //get和post的CallBack中获取返回结果都从result中获取
  8. result = $stringToJSON(result);
  9. //将字符串转换成JSON对象
  10. $alert("CountPage:" + result.CountPage);
  11. }
  12. });

$service.post()

向HTTP服务器发送post请求。

语法

  1. $service.post({
  2. "url" : "www.xxx.comxxxxxx.html",
  3. "data" : {
  4. "a" : 1,
  5. "b" : 2
  6. },
  7. "callback" : function(sender, arges) {
  8. $alert(eval(arges.result));
  9. },
  10. "header" : {
  11. "Content-Type" : "application/x-www-form-urlencoded",
  12. "User-Agent" : "imgfornote"
  13. },
  14. "timeout" : 5
  15. })

参数

  • url:必选参数,post请求的URL
  • data:可选参数,如果有此数据,必须封装在data中,post请求的要写入的数据,须为json对象
  • callback:可选参数,post请求成功后的回调js方法
  • timeout:可选参数,超时时间,单位为秒
  • header:可选参数,该参数对应一个json,方便开发者设置请求的header

实例

  1. var args = {};
  2. args["url"] = "http://academy.yonyou.com/api/loginLx.ashx";
  3. args["data"] = {
  4. key : "6480-4230-27FD-8AA0",
  5. user : "apitest",
  6. pwd : "123456"
  7. };
  8. args["callback"] = "postCallback()";
  9. $service.post(args);
  10. function postCallback() {
  11. $alert("JS调用Post请求");
  12. $alert($ctx.getString());
  13. var result = $ctx.param("result");
  14. // CallBack中获取返回结果都从result中获取
  15. $alert(result);
  16. //result是字符串
  17. result = $stringToJSON(result);
  18. //将字符串转换成JSON对象
  19. if (result.status == false || result.status == "false") {
  20. alert("result.status == " + result.status + " " + "result.errCode == " + result.errCode + " " + "result.errMsg == " + result.errMsg);
  21. } else if (result.status == true || result.status == "true") {
  22. alert("result.status == " + result.status + " " + "result.userName == " + result.userName);
  23. }
  24. }

$service.call()

该方法用来调我们已有的服务和第三方扩展服务。

语法

  1. $service.call("UMCtx.dataBind", {}, false)

参数

  • UMCtx.dataBind:服务名,字符串类型。规则为xxx.yyy,其中xxx表示原生服务的类名,yyy表示该类下的一个方法
  • {}:该服务的参数,json对象类型。该json对象的key值是该原生服务的参数名,value值为对应的参数值。一个服务可以有多个参数,用一个json对象来表达
  • false:异步执行或同步执行,布尔类型,如果该服务需要立即获取返回值的通常为同步调用,参数为ture;有回调方法的则为异步,参数为false。其中callback定义在第二个参数中,该参数是可选参数,没有该参数时,默认为异步调用

实例1(同步调用)

  1. $service.call("getListProperty", {
  2. "controlId" : "listview0",
  3. "rowindex" : 2,
  4. "childcontrolId" : "label0",
  5. "propertyname" : "value"
  6. }, true);// 单列表行内的控件属性,我们提供的服务一般不需要这么用,我们对提供的服务都进行了封装

实例2(异步调用)

  1. $service.call("UMdevice.opencamere", {
  2. "bindfield" : "xxxfieldName",
  3. "callback" : "mycallback()"
  4. }, false);

$service.readConfig()

读配置文件。

语法

  1. $service.readConfig(key)//获取Configure中key的键值

参数

  • key值

实例

  1. var host = $service.readConfig("host");

$service.loadConfig()

必须先使用writeConfig,才能使用loadConfig,将writeConfig写入config文件中的值加载到context中,使用$ctx.get(“”);获取相应的值。

语法

  1. $service.loadConfig({
  2. "host" : "field1", //将host的值写入当前Context的field1字段
  3. "port" : "field2"//将ip的值写入当前Context的field2字段
  4. })

参数

  • JSON格式,其中key:writeConfig中的key值,fieldname:context的字段名,可任意

实例

  1. //将config中的host和ip的值分别写入Context中的fieldA或FieldB字段中
  2. $service.loadConfig({
  3. "host" : "fieldA",
  4. "port" : "fieldB"
  5. });
文档更新时间: 2018-01-15 14:37