更新日期:     浏览次数:

1. 旧版js桥使用说明

新版js桥已经推出,支持Android、iOS和新版桌面端,使用方法请移步新版js桥文档

1.1. JS桥使用必要条件

  1. 云之家轻应用必须应用于云之家APP中,如果脱离了云之家APP,而在其他的浏览器中打开,是不能使用到云之家的JS-API功能的。(注意的是:目前云之家移动端可以使用全部的JS-API接口、桌面端仅支持部分接口
  2. 请开发者使用Javascript进行调用。
  3. 桌面端从userAgent版本0.0.2开始支持部分JS-API接口,同时支持桌面端的JS-API接口会有(桌面端+)的标识。
  4. 桌面端和移动端均通过qing.js来调用,有些细节不一致的将在下面说明。

1.2. JS桥使用步骤

1.2.1. 引入JS文件

在需要调用JS接口的页面引入如下JS文件:qingjs.js

引入示例(https):

<script src="https://static.yunzhijia.com/pub/js/qingjs.js"></script>

注:1. 云之家要求平台级轻应用统一支持https协议;对于企业自建应用,我们建议同样支持https协议,以避免可能发生的安全问题。 2.请不要将JS文件下载到开发者本地合并,建议显示引用。

1.2.2. 调用处理

云之家建议在对JS-API接口进行调用前,先判断当前环境是否支持调用JS-API接口,以便在不同环境中调用时有一些辅助的提示信息。

以“获取当前用户身份信息”的JS-API接口为例,示例代码:

//判断是否运行于云之家App中
function isYzjApp () {
  return navigator.userAgent.match(/Qing\/.*;(iOS|iPhone|Android).*/)?true:false;
}

/* 判断是否运行于云之家桌面端
 * @return {object} cloudhub 返回是否桌面端、当前桌面端userAgent版本及是否支持JS-API
 * cloudhub = {isCloudHub: true | false, hasJS-APIt: true | false, version: '0.0.1'}
 */
function getCloudHub () {
    var ua = window.navigator.userAgent;
    var reg = /cloudhub 10220\/([^;]+)/;
    var cloudhub = {
        isCloudHub: false,
        hasJS_APIt: false,
        version: ''
    };

    var match = reg.exec(ua), version;

    if (match) {
        version = match[1];
        cloudhub.isCloudHub = true,
        cloudhub.version = version;

        if (version.replace(/\./g, '') > 1) {
            cloudhub.hasJS_APIt = true;
        }
    }

    return cloudhub;
}

//获取操作系统平台,
iOS或Android
function getOS () {
  return (navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) ? 'iOS' :
    navigator.userAgent.match(/Android/i) ? 'Android' : '' );
}

// 是否在手机上
function isMobile () {
  var os = getOS();
  return os == 'iOS' || os == 'Android';
}

if (!isYzjApp() && !getCloudHub().isCloudHub) {
  $body.html("Hello!当前不在云之家App(桌面端)中!开启您的轻应用之旅吧!");
  if(!isMobile()) {
    $body.html("Hello!当前不在手机端上!开启您的轻应用之旅吧!");
  }
} else {
  XuntongJSBridge.call('getPersonInfo', {}, function(result) {
         if (null != result && undefined != result) {
                   /* ****  注意 start **** */
                   /* ****  由于在桌面端,实现JS-API方式不同,这里的回调返回值result是一个string **** */
                   /* ****  为确保result正常使用,建议在回调中添加如下代码 **** */
                   if (typeof result == 'string') {
                       result = JSON.parse(result);
                   }
                   /* ****  注意 end **** */

              var desc = "返回的数据:<p />" + JSON.stringify(result);
              var success = String(result.success);
        if (success == "true") {
      $body.html(desc + "。<p/>Hello!" + result.data.name + ",开启您的轻应用之旅吧!");
        } else if (success == "false") {
      $body.html(desc + "。<p/>返回失败!错误信息: " + result.error);
        } else {
      $body.html("返回有问题!");
        }
                } else {
              $body.html("返回失败!");
                }

  });
}

1.2.3. 处理回调

  • 当调用云之家JS-API后,返回为空时,表明处理成功,轻应用可以自行处理后续的工作。

  • 当有返回时,轻应用对此返回结果进行处理后再进行后续的开发,返回的格式为:

{
    success: true or false 是否成功(string)
    error: 错误信息(string)
    errorCode: 错误码(int)
    data: {
       ...
    }
}

其中的返回说明如下表:

字段名称 数据类型 说明
success string 接口调用是否成功。返回“true”说明成功;返回“false”说明失败;返回“其他的”说明接口实现有问题。
error string 接口调用失败的详细信息。
errorCode int 接口调用失败的错误码。
data json 接口调用成功,返回的数据。

特别注意:

  1. 由于历史实现问题,Android返回的success字段返回类型为boolean,而iOS返回类型为字符串。即Android的success的值为true/false,iOS的success的值为”true”/“false”。为综合这两种情况,可以采取如下代码解决问题:
var success = String(result.success);
if (success == "true") {
   ...
} else if (success == "false") {
   ...
} else {
   alert("接口返回值非法!");
}
  1. 桌面端调用JS桥可根据返回值的errorCode来判断是否支持该JS-API(仅桌面端可用),若errorCode == 404,表示桌面端不支持该JS-API。

1.3. 环境判断方法

由于目前桌面端JS-API版本的差异,以及仅支持部分接口,所以基础接口在这里的逻辑并没有给出对应方法,如需应用在云之家桌面端展示的,请参照下”调用处理”中相应代码。

1.3.1. 客户端UA信息说明

云之家App轻应用的UserAgent获取到的信息如下:

deviceId 设备ID
deviceName 设备名称
clientId 客户端ID,10200表示iOS端,10201表示Android端,10208表示iPad端
os 系统版本
brand 手机品牌
model 手机型号
lang 客户端当前语言,zh开头为中文,en开头为英文,目前仅支持中文和英文
fontNum 客户端当前字体大小,0表示标准字体,-1表示小号字体,1、2、3、4依次表示更大号字体(目前仅iOS端支持)

1.3.2. 判断当前客户端的身份

识别用户当前所处环境为非手机端还是Android还是iOS。见如下代码:

//获取操作系统平台,iOS或Android
function getOS () {
    return (navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) ? 'iOS' :
    navigator.userAgent.match(/Android/i) ? 'Android' : '' );
}

当以上方法返回不为Android或iOS时,则说明用户当前所处环境为非手机端。

1.3.3. 判断当前环境是否支持JS-API

(1)判断思路: 判断当前环境是否支持JS桥,该依据是通过云之家轻应用专属的UserAgent值来判断。

UserAgent信息格式如下: 轻应用框架标示/轻应用框架版本;系统名称 系统版本;设备ID;设备名称;客户端ID;系统版本;手机品牌;手机型号;客户端当前语言;客户端当前字体大小;系统原始的User-Agent

例如:

Qing/0.9.70;iOS 11.3.1;Apple;iPhone10,3;deviceId:d5152412-d2b1-4c97-8e3c-4f66dfd3578a;deviceName:Gil%20iPhone;clientId:
10200;os:iOS 11.3.1;brand:Apple;model:iPhone10,3;lang:zh-CN;fontNum:0;
Mozilla/5.0 (iPhone; CPU iPhone OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E302

Qing/0.9.70;Android 7.0;Xiaomi;MI+5s;deviceId:e6beb202-cf1a-3c3e-aef5-34fd825c52ac;deviceName:Xiaomi MI+5s;clientId:
10201;os:Android 7.0;brand:Xiaomi;model:MI+5s;lang:zh-CN;

总结:

云之家App轻应用的UserAgent是以“/Qing\/.;(iOS|iPhone|Android)./”该正则表达式来匹配,当匹配到这个时,即云之家的客户端。

特别注意:

  • 开发者不能直接单纯地拿以上的举例去作识别。即不能以如下代码:
navigator.userAgent == "Qing/0.9.0;iPhone OS 9.1;Apple;iPhone7,1 " ||
navigator.userAgent == "Qing/0.9.0;Android4.1.1;Xiaomi;MI 2 "

这样去判断,因为轻应用框架的版本号及其他的项并不是一成不变的!

  • 当轻应用URL必须经过第三方服务进行转换时,第三方服务必须将来自于云之家的UserAgent进行转发,以免轻应用中获取到错误的运行环境,造成轻应用布局或业务不能达到预期的目标。

(2)可以通过如下代码,进行判断:

// 轻应用是否运行于云之家的框架中而非其他浏览器中
navigator.userAgent.match(/Qing\/.*;(iOS|iPhone|Android).*/)?true:false;

当以上代码返回true,即当前环境支持JS-API,也即轻应用运行于云之家的框架中而非其他浏览器中。

2. 文件

本页绍了和文件相关的JS-API方法,开发者可以根据应用的需求进行相应的配置。本页方法会不定期更新以满足更多应用个性化的开发需求。如果您有什么需求,欢迎在云之家开发者交流社区留言反馈,我们会根据您的需求进行优化。

2.1. 选择文件

调用代码:

XuntongJSBridge.call('selectFile',
                     {},
         function(result){}
             );

参数说明:

回调说明:

{
    success: true or false 是否成功(String)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:{
      files:[{
          fileId:   文件Id,String
          fileName: 文件名称,String
          fileExt:  文件后缀,String
          fileTime: 时间,String
          fileSize: 文件大小,int,单位:字节
      },...]
    }
}

2.2. 查看文件详情

调用代码:

XuntongJSBridge.call('showFile',
                     {
                        'fileId':'hde22fdej233',
                        'fileName':'计划',
                        'fileExt':'ppt',
                        'fileTime':'2014-11-28 13:23:54',
                        'fileSize':35500
                     },
                     function(result){}
             );

参数说明:

参数名称 数据类型 必选 说明
fileId string 文件ID,第三方文件不传。
fileName string 文件名称
fileExt string 文件后缀
fileTime string 时间
fileSize int 文件大小,单位:字节
fileDownloadUrl string 文件下载地址,非云之家的第三方文件传入此参数,可直接下载并打开文件

回调说明:

3. 图片

本页介绍了和图片相关的JS-API方法,开发者可以根据应用的需求进行相应的配置。本页方法会不定期更新以满足更多应用个性化的开发需求。如果您有什么需求,欢迎在云之家开发者交流社区留言反馈,我们会根据您的需求进行优化。

3.1. 获取图片

功能说明:获取图片说的是调起云之家app的”获取图片”页,目前有2种方式:选择图片文件,或直接拍照。

调用代码:

XuntongJSBridge.call('selectPic', {'type':'camera'}, function(result){
   alert("结果:"+JSON.stringify(result));
});

参数说明:

参数名称 数据类型 必选 说明
type string 类型,“camera”代表“相机”,“photo”代表“相册”,不传表示从相机、相册中选择(Qing/0.9.10及以上支持。)

回调说明:

{
    success: true or false 是否成功(string)
    error: 错误信息(string)
    errorCode: 错误码(int)
    data: {
        fileExt:文件后缀(string)
        fileData:文件数据的base64字符串(string)
   }
}

data中字段说明:

字段名称 数据类型 说明
fileExt string 文件后缀。
fileData string 用户头像地址。

3.2. 预览图片

调用代码:

//0.9.16及以上版本支持
XuntongJSBridge.call('previewImage',
                    {
                        'current':'url',
                        'urls':['url1','url2',...]
                    },
                    function(result){}
);

参数说明:

参数名称 数据类型 必选 说明
current string 当前显示图片的http链接
urls array(string) 需要预览的图片http链接列表

回调说明:

3.3. 保存图片到相册

XuntongJSBridge.call('savePic',
                    {
                        'url':'xxxx'
                    },
                    function(result){
                        success: true or false 是否成功(String)
                        error: 错误信息(String)}
                        errorCode:错误码(String)
                    }
                 );

3.4. 拍照或从手机相册中选图接口

XuntongJSBridge.call('chooseImage',
                     {
                        'type':'camera', //类型,“camera”代表“相机”,“photo”代表“相册”,不传表示从相机、相册中选择;多选此参数无用,只能从相册选择
                        'needCut': 'false', //是否需要裁剪处理,默认 false 
                        'isMulti': false,    //是否多选,当为true时,needCut参数无效
                        'maxSelectCount': 9,  //当isMulti为true时需要传的参数 最大选择图片数,int,默认9
                        'showOrigin': false   //是否显示原图,默认为true
                     },
             function(result){
                        localId:xxx   // string 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
                        localIds: [ 'xxx', 'xxx' ]   // array 多选时,只会通过这个参数返回选定照片的本地ID列表
                    }
                 );

备注:支持在webview内预览本地图片<img src="yzjLocalResource://img?id=xxxxxxx">

3.5. 上传图片接口

XuntongJSBridge.call('uploadImage',
                    {
                       localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得
                       isShowProgressTips: 1, // 默认为1,显示进度提示
                    },
             function(result){
                    success: true or false 是否成功(String)
                    error: 错误信息(String)}
                    data:{
                        serverId:xxxx  //服务端文件id
                        localId:xxx //需要上传的图片的本地ID
                     }
                 }
                 );

备注:上传图片有效期3天,可用多媒体接口下载图片到自己的服务器,https://yunzhijia.com//openfile/download/media/{serverId} {serverId} 为服务端文件id

3.6. 下载图片接口

XuntongJSBridge.call('downloadImage',
                    {
                       serverId:xxxx, // 需要下载的图片的服务器端ID,由uploadImage接口获得
                       isShowProgressTips: 1, // 默认为1,显示进度提示
                    },
             function(result){
                    success: true or false 是否成功(String)
                    error: 错误信息(String)}
                    data:{
                        localId: xxxx
                     }
                 }
                 );

3.7. 获取本地图片接口(仅iOS)

XuntongJSBridge.call('getLocalImgData',
                    {
                       localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得
                    },
             function(result){
                    success: true or false 是否成功(String)
                    error: 错误信息(String)}
                    data:{
                        localData:"" // localData是图片的base64数据,可以用img标签显示
                     }
                 }
                 );

备注:此接口仅在 iOS WKWebview 下提供,用于兼容 iOS WKWebview 不支持 localId 直接显示图片的问题。

4. 智能会议

本页绍了智能会议相关的JS-API方法,开发者可以根据应用的需求进行相应的配置。本页方法会不定期更新以满足更多应用个性化的开发需求。如果您有什么需求,欢迎在云之家开发者交流社区留言反馈,我们会根据您的需求进行优化。

4.1. 发起直播

调用代码:

XuntongJSBridge.call('createLive',
                    {
                       groupId:'xxx'
                    },
                    function(result){
                        success: true or false 是否成功(String)
                        error: 错误信息(String)}
                        errorCode:错误码(String),
                        data:{}
                    }
                 );

参数说明:

参数名称 数据类型 必选 说明
groupId string groupId不会空,在对应的群组内选人发起;如果不传,则走默认的选人界面

4.2. 发起语音会议

调用代码:

XuntongJSBridge.call('createVoiceMeeting',
                    {
                       groupId:'xxx'
                    },
                    function(result){
                        success: true or false 是否成功(String)
                        error: 错误信息(String)}
                        errorCode:错误码(String),
                        data:{}
                    }
                 );

参数说明:

参数名称 数据类型 必选 说明
groupId string groupId不会空,在对应的群组内选人发起;如果不传,则走默认的选人界面

5. 位置

本页介绍了获得位置信息相关的JS-API方法,开发者可以根据应用的需求进行相应的配置。本页方法会不定期更新以满足更多应用个性化的开发需求。如果您有什么需求,欢迎在云之家开发者交流社区留言反馈,我们会根据您的需求进行优化。

5.1. 定位

调用代码:

//0.9.6及以上支持
XuntongJSBridge.call('getLocation',{},function(result){});

参数说明:

回调说明:

{
    success: true or false 是否成功(String)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:{'latitude':22.2748379,                         //维度,国测GCJ-02标准
          'longitude':133.2324334,                        //经度,国测GCJ-02标准
          'province':'广东省',                            //省
          'city':'深圳市',                                //市
          'district':'南山区',                            //区
          'name':'金蝶软件园',                            //名称
          'address':'科技南十二道',                       //地址
          'addressdetail':广东省深圳市南山区科技南十二道'   //详细地址
    }
}

5.2. 选取周边位置

调用代码:

//0.9.6及以上支持
XuntongJSBridge.call('selectLocation', {
    'latitude':22.394839,
    'longitude':133.374833,
    'isLocation':false,
    'isFullMap':true
}, function(result){
});

参数说明:

参数名称 数据类型 必选 说明
latitude double 否,isLocation为false时,必填 周边位置的中心纬度,国测GCJ-02标准。
longitude double 否,isLocation为false时,必填 周边位置的中心经度,国测GCJ-02标准。
isLocation boolean false为传过来的经纬度来获取周边,true获取自动定位获取周边。
isFullMap boolean true获取地图任意位置。

回调说明:

{
    success: true or false 是否成功(String)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:{'latitude':22.2748379,                         //维度
          'longitude':133.2324334,                        //经度
          'province':'广东省',                            //省
          'city':'深圳市',                                //市
          'district':'南山区',                            //区
          'name':'金蝶软件园',                            //名称
          'address':'科技南十二道',                       //地址
          'addressdetail':广东省深圳市南山区科技南十二道'   //详细地址
    }
}

6. 消息

本页介绍了和云之家基础消息能力相关的JS-API方法,开发者可以根据应用的需求进行相应的配置。本页方法会不定期更新以满足更多应用个性化的开发需求。如果您有什么需求,欢迎在云之家开发者交流社区留言反馈,我们会根据您的需求进行优化。

6.1. 打开群聊界面

调用代码:

XuntongJSBridge.call('chat',  {
       'openId':'ge6sjw12sda2scdfefe2'
   }, function(result) {
      alert("结果:"+JSON.stringify(result));
});

参数说明:

参数名称 数据类型 必选 说明
openId string 与groupId二选一 云之家账号体系下对话人的用户ID。
groupId string 与openId二选一 会话组ID。
draft string 打开会话传入的草稿,会预置在聊天会话消息发送框。

回调说明:

{
    success: true or false 是否成功(string)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:
}

6.2. 转发/分享(支持桌面端)

调用代码:轻应用转发信息给用户或聊天组

XuntongJSBridge.call("share",  {
       "shareType":"4",
       "appId":"XXX",
       "appName":"XXX",
       "lightAppId":"XXX",
       "title":"XXX",
       "content":"XXX",
       "thumbData":"XXX",
       "webpageUrl":"XXX",
       "cellContent":"XXX",
       "sharedObject":"XXX",
       "callbackUrl":"XXX",
       "selected":['aaa','bbb',...]
   }, function(result) {
      alert("结果:"+JSON.stringify(result));
});

参数说明:

参数名称 数据类型 必选 说明
shareType string 转发类型,目前仅支持4,表示轻应用转发信息。
appId string 轻应用ID或公共号ID,当为轻应用时传轻应用ID;当为公共号时传公共号ID。
appName string 轻应用名称或公共号名称,当为轻应用时传轻应用名称;当为公共号时传公共号名称。
theme string 主题(可选),如传入,创建组时以此命名组名称。
lightAppId string 轻应用ID(如果需要获取ticket,则必须传入此参数)。
title string 新闻标题。
content string 新闻内容。
thumbData string 新闻缩略图,使用Base64编码,大小不要超过32k,否则消息发送失败,分辨率推荐198*198,图片格式推荐使用jpg
webpageUrl string 新闻的url。
cellContent string 在聊天界面显示的内容。
sharedObject string 转发的对象:all(所有),group(组),person(人)。
selected array(string) 选择人员的openid
callbackUrl string 回调接口,可选。
如果轻应用传了此字段,客户端在转发消息之前(用户选择群组之后)会先调用此接口,并且将参数(groupId、eId、openId、content)回传给轻应用。
此接口处理完业务后需返回:
{
“data”:“id=3dsfj7322jfnbg20s3d2”,
“error”: null,
“errorCode”: 0,
“success”: true
}
客户端取到data中的数据后接到webpageUrl后面,最终发送的消息中的链接会变成轻应用传过来的webpageUrl+data里的值。
callbackParam object({key: value}) 仅桌面端支持,回调callbackUrl时需要传入的额外参数及参数值

回调说明:

{
    success: true or false 是否成功(string)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:
}

7. 组织与人员

本页介绍了和云之家组织与人员相关的JS-API方法,开发者可以根据应用的需求进行相应的配置。本页方法会不定期更新以满足更多应用个性化的开发需求。如果您有什么需求,欢迎在云之家开发者交流社区留言反馈,我们会根据您的需求进行优化。

7.1. 切换工作圈

调用代码:

XuntongJSBridge.call("switchCompany",  {
       "eid":"XXX"
   }, function(result) {
      alert("结果:"+JSON.stringify(result));
});

参数说明:

参数名称 数据类型 必选 说明
eid string 云之家工作圈企业号。

回调说明:

{
    success: true or false 是否成功(string)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:
}

7.2. 选择人员

调用代码:

XuntongJSBridge.call('selectPersons',
                     {
                         'isMulti':false,
                         'isShowMe':false,
                         'range':['xxx','yyy',...],//如果不需要指定范围,则不传该字段,而不是传空数组
                         'selected':['aaa','bbb',...],
                         'ignore':['111','222',...]
                     },
                     function(result){}
                 );

参数说明:

参数名称 数据类型 必选 说明
isMulti int 是否为多选,默认false。
isShowMe int 是否在选人组件中显示自己,默认false。
range array(string) 指定选人范围,仅在指定的范围内选人,数组中传openId。
selected array(string) 已选人员名单,数组中传openId。
ignore array(string) 过滤人员名单,数组中传openId。如果是指定范围选人,则该参数无效。

回调说明:

{
    success: true or false 是否成功(String)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:{
        persons:[
            {
                name: 用户姓名
                avatarUrl:用户图像地址
                openId: 用户Id
            },...]
          }
}

7.3. 选择部门

调用代码:

XuntongJSBridge.call('selectOrgs',
                     {
                         'isMulti':false
                     },
                     function(result){}
                 );

参数说明:

参数名称 数据类型 必选 说明
isMulti int 是否为多选,默认false。

回调说明:

{
    success: true or false 是否成功(String)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:{
        orgs:[
            {
                orgId: 部门ID
                orgName:部门名称
                personCount: 部门人数
            },...]
          }
}

8. 其他

本页介绍了其他一些云之家原生能力,开发者可以根据应用的需求进行相应的配置。本页方法会不定期更新以满足更多应用个性化的开发需求。如果您有什么需求,欢迎在云之家开发者交流社区留言反馈,我们会根据您的需求进行优化。

8.1. 扫一扫

调用代码:

XuntongJSBridge.call("scanQRCode",  {
       "needResult":0
   }, function(result) {
});

参数说明:

参数名称 数据类型 必选 说明
needResult int 是否需要处理,默认为0,扫描结果由云之家处理,1则直接返回扫描结果。

回调说明:

{
    success: true or false 是否成功(String)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:{
         "qrcode_str":"xxx"
    }
}

data字段说明:

字段名称 数据类型 说明
qrcode_str string 扫码返回的结果,该结果在needResult为1的时候;当needResult为0时,data字段不返回。

8.2. 打开第三方应用

调用代码:

XuntongJSBridge.call('gotoApp',  {
       "data":'yunzhijia://p?url=https://itunes.apple.com/cn/app/id595672427'
   }, function(result) {
      alert("结果:"+JSON.stringify(result));
});

参数说明:

参数名称 数据类型 必选 说明
data string 第三方应用跳转Scheme。其中url是必须的,表示应用的下载地址。如果手机未安装应用,则跳转至此地址进行安装;如果还需其他参数,则使用 & 接到后面;如果是Android,也可定义为:packageName://className?key=value&key=value;

回调说明:

  • 当调用成功时直接打开了第三方应用。
  • 当调用失败时:
{
   success: false
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:
}

8.3. 获取或者设置粘贴板内容

调用代码:

//0.9.12及以上支持
XuntongJSBridge.call('clipBoard',
                     {
                        'type':'getString or setString',
                        'string':'设置的内容'
                     },
                    function(result){}
);

参数说明:

参数名称 数据类型 必选 说明
type string getString表示获取粘贴板内容,setString表示设置粘贴板内容
string string getString时传空,setString时传入需要设置的内容

回调说明:

{
    success: true or false 是否成功(String)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data:{
        'string': '粘贴板内容' //getString才会返回此值,此参数做了url encode,使用时需要decode
    }
}

9. 界面相关

本页介绍了和轻应用界面设置相关的JS-API方法,开发者可以根据应用的需求进行相应的配置。云之家会不断开放更多能力以满足更多应用个性化的开发需求。如果您有什么建议,欢迎在云之家开发者交流社区留言反馈,我们会根据您的需求进行优化。

9.1. 隐藏或者设置页面标题

调用代码:

    XuntongJSBridge.call('hideWebViewTitle');//隐藏页面标题
    XuntongJSBridge.call('setWebViewTitle',{'title':'申请加入群聊'});//设置页面标题并显示

参数说明:

参数名称 数据类型 必选 说明
title string 需要设置的标题

回调说明:

9.2. 关闭轻应用界面

调用代码:

    //0.9.5及以上支持
    XuntongJSBridge.call('closeWebView');

参数说明:

回调说明:

9.3. 自定义右上角弹出菜单

调用代码:

    //0.9.6及以上支持
    XuntongJSBridge.call('createPop',
    {
    'popTitle':String,
    'popTitleCallBackId':String,
    'items':[
    {'text':'自定义条目1','callBackId':'callback1'},
    {'text':'自定义条目2','callBackId':'callback2'},
    ...
    ],
    'menuList' : ['forward'(转发),'refresh'(刷新),'share'(分享),'openWithBrowser'(在浏览器中打开)],
    'shareData' : {
    'isShowExt':'转发时是否显示商务伙伴,true or false,默认为true'
    'title' : '分享或者转发的标题',
    'url' : '分享的链接,若空则取当前的url',
    'description' : '分享或者转发的内容',
    'appLogo' : '轻应用Logo,base64数据,大小不要超过32k,分辨率推荐198*198,图片格式推荐使用jpg'
    'appName' : '轻应用名称'
    }
    },
    function(resp){
    if (resp.success == true || resp.success == 'true') {
      var callBackId = resp.data ? resp.data.callBackId : '';
      if (callBackId == 'callback1') {
      callback1();
      }
    }
    }
    );

    function callback1() {
    alert('callback1')
    }

参数说明:

参数名称 数据类型 必选 说明
popTitle string 右上角弹出菜单名称,只支持最
多4位中文字符,超出部分会截
断显示(不传入popTitle,如果最
后传入的有效条 目数大于0,则会
默认显示云之家”更多”图标,如果
有效条目数为0,则右上角不显示任何内容)
popTitleCallBackId string 点击右上角回调ID
items array(object{'text':String,'callBackId':'String'}) 自定义菜单条目(text:菜单条目文本、callBackId:回调ID)
menuList array(string) 系统菜单条目,目前支持share(分享)、
refresh(刷新)、openWithBrowser
(在浏览器中打开)、forward(转发)
shareData object 分享或者转发的内容

回调说明:

注意:

  1. 自定义菜单条目items数量和系统菜单条目menuList数量加起来不超过7条,如超过则优先显示系统菜单条目(比如items数量为5,menuList数量为4,则显示items前3条加menuList里的4条);
  2. 菜单显示顺序为优先显示自定义菜单条目,然后显示系统菜单条目,系统条目按JS方法传入的menuList顺序来显示;

9.4. 关闭右上角弹出菜单

调用代码:

    //0.9.6及以上支持
    XuntongJSBridge.call('closePop');

参数说明:

回调说明:

9.5. 自定义返回按钮事件

调用代码:

    //0.9.11及以上支持
    XuntongJSBridge.call('defback',
      {},
      function () {
      alert('点击了返回按钮');
      if (history.length <= 1) { //顶级页面,则关闭当前Web
      XuntongJSBridge.call('closeWebView');
      } else {
      history.back();
      }
      }
    );

参数说明:

回调说明:

9.6. 旋转界面

调用代码:

//0.9.11及以上支持
XuntongJSBridge.call('rotateUI',
                    {
                        'orientation':'landscape/portrait',
                    },
             function(result){}
                 );

参数说明:无

回调说明:无

10. 用户信息

本页介绍了和用户信息相关的JS-API方法,开发者可以根据应用的需求进行相应的配置。本页方法会不定期更新以满足更多应用个性化的开发需求。如果您有什么需求,欢迎在云之家开发者交流社区留言反馈,我们会根据您的需求进行优化。

10.1. 打开人员详情页面

调用代码: 这里说的人员详情是指调出云之家APP上面的人员详情页,而不是返回人员详细的内容。

    XuntongJSBridge.call('personInfo',  {
       'openId':'ge6sjw12sda2scdfefe2'
       }, function(result) {
      alert("结果:"+JSON.stringify(result));
    });

参数说明:

参数名称 数据类型 必选 说明
openId string 云之家账号体系下的用户ID。

回调说明:

  • 当调用成功时直接调出指定人的个人信息详情页。

  • 当调用失败时:

{
success: false
error: 错误信息(String)
errorCode: 错误码(int)
data:
}

10.2. 获取用户网络状态

调用代码:

    XuntongJSBridge.call('getNetworkType', {}, function(result){
       alert("用户网络状态:"+JSON.stringify(result));
    });

参数说明:

回调说明:

    {
    success: true or false 是否成功(string)
    error: 错误信息(String)
    errorCode: 错误码(int)
    data: {
      network_type:网络类型(string)
       }
    }

data中字段说明:

字段名称 数据类型 说明
network_type string 网络类型。

11. 音频

11.1. 开始录音接口

 XuntongJSBridge.call('startRecord',{},
  function(result){
    success: true or false 是否成功(String)
    error: 错误信息(String)//100权限错误;101无法录音;200 录音失败,请重试;0 默认正常
    data:{//超时返回,满60s后自动停止录音返回
        localId:'xxx',  //本地id
        len:xxx      //时长
        format:amr   //格式
        size:xxx     //文件大小
        fileId:xxx     //文件id
       }
    }
);

11.2. 停止录音接口

XuntongJSBridge.call('stopRecord', {},
    function(result){
        success: true or false 是否成功(String)
        error: 错误信息(String)
        data:{
               localId:xxx
               len:xxx
               format:amr
               size:xxx
               fileId: xxx
           }
     }
);

11.3. 播放语音接口

XuntongJSBridge.call('playVoice', {'localId':'xxx'},
    function(result){
       success: true or false 是否成功(String)
       error: 错误信息(String)
       errorCode:错误码(String//1.本地文件不存在,需要下载
       data:{
           playStatus: 0, // 0:开始播放  1:播放结束
          }
     }
);

11.4. 暂停播放接口

XuntongJSBridge.call('pauseVoice', {'localId':'xxx'},
    function(result){
       success: true or false 是否成功(String)
       error: 错误信息(String)
       errorCode:错误码(String//1.本地文件不存在,需要下载
       data:{}
    }
);

11.5. 停止播放接口

XuntongJSBridge.call('stopVoice', {'localId':'xxx'},
   function(result){
     success: true or false 是否成功(String)
     error: 错误信息(String)
     errorCode:错误码(String//1.本地文件不存在,需要下载
     data:{}
        }
);

11.6. 上传语音接口

XuntongJSBridge.call('uploadVoice',
          {
            'localId': 'xxxx', // 需要上传的音频的本地ID,由stopRecord接口获得
            'isShowProgressTips': 1 // 默认为1,显示进度提示
          },
          function(result){
            success: true or false 是否成功(String)
            error: 错误信息(String)
            data:{
               serverId:xxxx  //服务端文件id
            }
          }
);

备注:(0.9.51 新增)上传音频有效期3天,可用多媒体接口下载语音到自己的服务器,https://yunzhijia.com/openfile/download/media/{serverId} {serverId} 为服务端文件id

11.7. 下载语音接口

XuntongJSBridge.call('downloadVoice',
      {
        'serverId':'xxxx', // 需要下载的音频的服务器端ID,由uploadVoice接口获得
        'isShowProgressTips': 1 // 默认为1,显示进度提示
      },
      function(result){
        success: true or false 是否成功(String)
        error: 错误信息(String)
        data:{
            localId: xxxx
        }
       }
);

results matching ""

    No results matching ""