4.第三方介入后H5与APP交互
<p>[toc]</p>
<h3>4.1. 引入远程脚本文件 cstoon-jssdk.js</h3>
<ul>
<li><code><script src="https://s-test.dysmt.cn/h5Static/common/js/cstoon-jssdk.js"></script></code></li>
</ul>
<h6>参数方法</h6>
<table>
<thead>
<tr>
<th style="text-align: left;">功能</th>
<th style="text-align: left;">方法</th>
<th style="text-align: left;">说明</th>
<th>返回结果</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">后退</td>
<td style="text-align: left;">cst.back()</td>
<td style="text-align: left;">此方法用于调用 APP 后退方法。</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">关闭</td>
<td style="text-align: left;">cst.close()</td>
<td style="text-align: left;">此方法用于调用 APP 关闭 webview 窗口的方法</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">隐藏头部</td>
<td style="text-align: left;">cst.hideHeader()</td>
<td style="text-align: left;">此方法用于隐藏 APP 头部(标题栏)</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">设置app头部标题</td>
<td style="text-align: left;">cst.hideHeader()</td>
<td style="text-align: left;">此方法用于隐藏 APP 头部(标题栏)</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">调用 APP 地址选择</td>
<td style="text-align: left;">cst.getAddress(callback)</td>
<td style="text-align: left;">此方法用于调用 APP 地址选择控件,获取地址</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">复制文本</td>
<td style="text-align: left;">cst.copyToClipboard(str)</td>
<td style="text-align: left;">此方法用于复制文本</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">获取 app 基础参数</td>
<td style="text-align: left;">cst.getBaseParams()</td>
<td style="text-align: left;">此方法用于获取 APP 基础参数</td>
<td>{appId :“”,siteId:“”,siteAreaCode:“”}</td>
</tr>
<tr>
<td style="text-align: left;">打开登录页</td>
<td style="text-align: left;">cst.openLogin()</td>
<td style="text-align: left;">此方法用于跳转到 APP 注册页面</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">打开 APP 页面</td>
<td style="text-align: left;">cst.openWindow(path)</td>
<td style="text-align: left;">此方法用于跳转到 APP 内部页面</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">调用导航</td>
<td style="text-align: left;">cst.navigation(obj)</td>
<td style="text-align: left;">此方法用于调用 app 导航</td>
<td>传递 json 字符串, 例如 var obj = {"startLng" : "起点经度","startLat" : "起点纬度", "endLng" : "终点经度", "endLat" : "终点纬度"};</td>
</tr>
<tr>
<td style="text-align: left;">拨打电话</td>
<td style="text-align: left;">cst.openDial(phoneNumber)</td>
<td style="text-align: left;">通过调用原生方法传入电话,实现拨打电话</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">预览 PDF 文档</td>
<td style="text-align: left;">cst.previewPDF(fileName, fileUrl)</td>
<td style="text-align: left;">此方法用于预览 PDF 文档</td>
<td>传入文档名称,文档的路径</td>
</tr>
<tr>
<td style="text-align: left;">获取当前位置坐标</td>
<td style="text-align: left;">cst.getLocationCoordinate(function(){})</td>
<td style="text-align: left;">此方法用于获取当前位置坐标</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">分 享</td>
<td style="text-align: left;">cst.shareHandle(shareInfo)</td>
<td style="text-align: left;">此方法用于调用 app 原生分享,触发弹框</td>
<td>var shareInfo = { title : "", link : "", imgUrl : "", desc : "" }</td>
</tr>
<tr>
<td style="text-align: left;">跳转个人认证</td>
<td style="text-align: left;">cst.appPersonalInfo(function(){})</td>
<td style="text-align: left;">跳转到 app 个人认证</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">跳转企业认证</td>
<td style="text-align: left;">cst.appEnterpeiseAuth(function(){})</td>
<td style="text-align: left;">跳转 app 企业认证</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">选择通讯录人员</td>
<td style="text-align: left;">cst.appSelectPhoneBook(callback, renderDataStr)</td>
<td style="text-align: left;">此方法用于调用原生页面,进行人员的选择,并返回已选数据。已选择的数据重新进入不能编辑,通过 renderDataStr 字段进行控制</td>
<td>callback 选择成功回调,返回当前已选数据 renderDataStr 回填用户 id,格如“id1,id2,id3” 输出结果数据格式: { "content": [{ "id": "B5688927C3197950D3BE08FAB9XXXXXX", "name": "赖 XX", "position": "新媒体运营专员", "phone": "15711112222", "mail": "laiXX@linewell.com", "deptName": "互联网运营中心活动策划部", "gender": 1, "appUserId": "B5688927C3197950D3BE08FAB9XXXXXX", "userPostRank": 6, "userCode": "LWTJ03XXXX", "userIdCard": "350526XXXXXXXXXXXX", "userPersonphoto": "<a href="http://mss.linewell.com/lbspuploadPhoto/userphoto/XXXXXXX.jpg">http://mss.linewell.com/lbspuploadPhoto/userphoto/XXXXXXX.jpg</a>" }], "isSuccess": true }</td>
</tr>
<tr>
<td style="text-align: left;">重写 APP 后退方法监听后退事件</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">此方法用于监听 APP 后退方法</td>
<td>export const initNativeBack = () => { let sysType = cst.getDeviceType(); window.mui = {}; if(sysType == "H5"){ return; } sysType == "ANDROID" && android.useJsBack("true"); mui.nativeBack = function() { // 处理业务逻辑,比如关闭 webview cst.close(); }</td>
</tr>
<tr>
<td style="text-align: left;">获取 token</td>
<td style="text-align: left;">cst.getToken()</td>
<td style="text-align: left;">获取 APP 的 token</td>
<td>返回String 类型 token</td>
</tr>
<tr>
<td style="text-align: left;">获取设备类型</td>
<td style="text-align: left;">cst.getOsType()</td>
<td style="text-align: left;">获取当前设备为安卓还是 ios</td>
<td>返回ANDROID 或 IOS</td>
</tr>
<tr>
<td style="text-align: left;">是否城市通 APP 打开</td>
<td style="text-align: left;">cst.isCstoon()</td>
<td style="text-align: left;">判断是否是在城市通 APP 内打开</td>
<td>返回true 或 false</td>
</tr>
<tr>
<td style="text-align: left;">获取userId</td>
<td style="text-align: left;">cst.getUserId()</td>
<td style="text-align: left;">此方法用于获取 APP 的用户 id</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">获取环境类型</td>
<td style="text-align: left;">cst.getDeviceType()</td>
<td style="text-align: left;">此方法用于获取设备类型</td>
<td>ANDROID 或 IOS 或 H5</td>
</tr>
<tr>
<td style="text-align: left;">获取名称</td>
<td style="text-align: left;">cst.getAppName()</td>
<td style="text-align: left;">此方法用于获取 APP 的名称</td>
<td>APP 名称</td>
</tr>
<tr>
<td style="text-align: left;">获取 deviceId</td>
<td style="text-align: left;">cst.getDeviceId()getBaseParams</td>
<td style="text-align: left;">此方法用于获取 APP 的 deviceId</td>
<td>deviceId</td>
</tr>
<tr>
<td style="text-align: left;">获取 baseParams打开</td>
<td style="text-align: left;">cst.getBaseParams()</td>
<td style="text-align: left;">此方法用于获取 APP 的基础参数</td>
<td>APP 的基础参数</td>
</tr>
</tbody>
</table>