💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## **与客户端交互步骤** #### **步骤一:引入JS文件** 在需要调用客户端方法的页面引入如下相对JS文件: [/public/appBridgeJs/appBridgeFun.js]() ***** #### **步骤二:客户端执行交互方法前提** 在首次访问的H5链接后面加上isnewjs参数即可 例如: http://xxx.360tianma.com?isnewjs=1 #### **步骤三:原生方法调用** **特别注意:所有回调res内容都是JSON字符串格式,不为空时需要使用JSON.parse转JSON对象使用** ~~~ AppBridgeGlobal.ready(function (res) { /* 与客户端桥接成功的回调方法,在进入页面就需要调用以下方法时, 请放在ready方法内,或者自行加300毫秒以上延时调用也可 */ }) ~~~ ~~~ AppBridgeGlobal.getTMUserInfo(function (res) { /*获取用户信息 将用户信息转换成json字符串后返回,如果没有返回空字符串 */ var userInfo = null; if(res==''){ //未登录 }else{ userInfo = JSON.parse(res); //用户信息 } }) ~~~ ~~~ AppBridgeGlobal.checkTMLogin(function (res) { /*判断是否登录 回传参数: true 已登录 false 未登录 */ if(res){ //已登录 }else{ //未登录 } }) ~~~ ~~~ AppBridgeGlobal.goToLogin(function (res) { /*跳转登录页面 如果登录成功后,参考用户信息方式,返回json字符串 如果取消登录则返回空字符串 */ var userInfo = null; if(res==''){ //未登录,并返回 }else{ userInfo = JSON.parse(res); //登录成功并返回的用户信息 } }) ~~~ ~~~ AppBridgeGlobal.getTMLocationInfo(function (res) { /*获取定位信息 回传参数: result:定位结果, true  / false errorInfo:错误信息,仅定位失败时才有 longitude:经度 latitude:纬度 以下信息不一定有,高德返回的有就有 province:省 city:市 district:区 citycode:城市编码 adcode:区域编码 formattedAddress:格式化地址 */ }) ~~~ ~~~ AppBridgeGlobal.homeBackClicked(function (res) { //返回上一页,作为H5全屏返回APP上一页 }) ~~~ ~~~ AppBridgeGlobal.getHeadInfo(function (res) { /*获取头部信息 回传参数 themeColor: 主题色,如:FF0000 titleColor:  头部文字按钮颜色, 如:FFFFFF backgroundType:  头部背景类型,0:16进制色值字符串(如1479D7),1:图片base64字符串,2:图片网络链接,  默认为色值字符串 backgroundValue:  头部背景值,值类型参照backgroundType字段 domain:  域名 siteCode:  siteCode DeviceID: 设备唯一标识 title: 顶部标题,如果没有就是空字符串 */ }) ~~~ ~~~ AppBridgeGlobal.goToQRcode(function (res) { /*调用扫一扫 如果有内容则返回信息,取消返回空字符串 */ }) ~~~ ~~~ AppBridgeGlobal.goToShare({ title: '分享标题', //分享标题 content: "分享描述", //分享描述 logo: "",//分享图主要用于分享到三方平台的卡片展示 url: "", //分享的url地址 thumbna:"", //分享的缩略图(不传默认为App的logo图) type: 2 // 1:QQ 、 2:微信 (不传该字段或0为全部平台) }, function (res) { /*调用分享方法 回调参数:json字符串 code:分享结果:200 成功   500 分享失败   -999 取消分享 type:分享平台 1:QQ  2:微信 3:微博 4:复制 5:举报 platformType: 分享详细平台结果,1:微信好友  2:微信朋友圈  3:微信收藏 4:QQ好友 5:QQ空间  6:微博   7:复制 8.举报 msg:分享描述 */ }) ~~~ ~~~ AppBridgeGlobal.goToNativeComponents({ "iosInfo": { "native": true,// 跳转界面是否为原生界面 "src": "HViewController",// 跳转以展示的页面,若是h5页面,直接给出链接,若是原生界面,给出类的控制器类名 "paramStr": "",//参数 }, "androidInfo": {//参考iOS "native": false, //跳转H5地址 "src": "index.html", //H5地址 "paramStr":  JSON.stringify({"tmHideNavgation": 1}), //例子:参数是否隐藏头部 1 :隐藏, 0 :展示 } }, function (res) { //跳转原生组件 }) ~~~ ~~~ //客户端退出登录交互 /* tenma01zx_eqlil 代表开发的组件名,尽量使用天马提供的组件标识名作为唯一方法调用 */ AppBridgeGlobal.setNoticeFunName('tenma01zx_eqlil_logout, function (res) { //此方法是交给客户端注册 登出后需要执行的js公共方法名 }) ; window.tenma01zx_eqlil_logout = function(){ //客户端退出后会调用此方法,请把登出后的操作放在此处 } ~~~ ~~~ //录音方法 AppBridgeGlobal.startRecordAudio({duration:30});//开始录音 duration代表最大录音时长(s),不传则默认30s AppBridgeGlobal.stopRecordAudio();//结束录音 AppBridgeGlobal.callbackRecordAudio(function (res) { //录音回调监听方法 /* code:错误码(-1:未知错误;0:录制成功回调;1:未开始录制;2:正在录制中;3:没有录音权限;4:开始录制成功;6:麦克权限被拒绝) message:错误消息 url:音频上传后的url地址 duration:音频时长 */ }); ~~~ ~~~ //加密方法 AppBridgeGlobal.TMEncryptionData({ "data": "" //需要加密的内容 }, function (res) { /* { code: 200, //加密的code码,200代表成功 其余为失败 msg: "", //加密的提示文字信息 data:"", //加密后的字符串 header: "" //加密时生成的header参数 }*/ }) //解密方法 AppBridgeGlobal.TMDecryptData({ "data": "", //需要解密的字符串 "header": "" //加密后返回header参数 }, function (res) { /* { code: 200, //解密的code码,200代表成功 其余为失败 msg: "", //解密的提示文字信息 data:"" //解密后的内容 }*/ }) ~~~ ~~~ //打开浏览器跳转 AppBridgeGlobal.TMOpenBrowser({ "url": "", //需要打开的链接地址 "targetType": 1, // 1系统浏览器 2 内置浏览器 "param": "" //参数 json字符串 非必传 }, function (res) { /* { code: 200, //200代表成功 其余为失败 msg: "", //提示文字信息 }*/ }) ~~~ ~~~ //是否开启屏幕截屏保护(只适用于安卓中使用) AppBridgeGlobal.tmScreenSecure({ "screenSecure": 0, // 1:开启截屏保护, 0:关闭截屏保护 }, function (res) { /* { tmCode: 200, //200代表成功 其余为失败 tmMsg: "", //提示文字信息 }*/ }) ~~~ ~~~ //跳转导航App AppBridgeGlobal.tmJumpNavigationAPP({ "coordType": 1, // 标系类型,1:火星坐标系(GCJ02,高德、apple)  2:百度坐标系(BD09) 3:WGS84(GPS坐标系,国内一般禁止使用) "originName":"",//起点名称(如果以当前位置导航,可以不传) "originLatitude":"",//起点纬度(如果以当前位置导航,可以不传) "originLongitude":"",//起点经度(如果以当前位置导航,可以不传) "destinationName":"",//导航目的地名称 "destinationLatitude":"",//导航目的地纬度 "destinationLongitude":"", //导航目的地经度 }, function (res) { /* { tmCode: 200, //200:成功,300:没有导航选项,999:取消,其他:失败 tmMsg: "", //提示文字信息 tmNavgationType:"" //用户选择的导航类型, 1:高德  2:百度 3:apple }*/ }) ~~~ ~~~ //App变得活跃时,显示的页面,目前用在支付返回时状态显示 AppBridgeGlobal.tmBecomeActiveShowPage({ "pageUrl": "", //页面地址 "iOSReferer":"", //iOS授权域名 "androidReferer":"" //Android授权域名 }, function (res) { /* { tmCode: 200, //200:成功 tmMsg: "", //提示文字信息 }*/ }) ~~~ ~~~ //App头部右上角分享配置 AppBridgeGlobal.createShareFunctionButton({ "title":"分享标题", "content":"分享描述内容", "url":"分享链接链接", "type" : "1", //1:QQ 2:微信 没有该字段或其他:弹出app分享UI,用户自行选择 "thumbna":"缩略图", "showLocation": 1,//1:页面右下角 没有该字段或2:导航栏右边  "shareButtonImage" : "", //如果没有该字段或该字段不可下载,则默认取本地分享图标。 本地分享图标需要跟导航栏文字颜色匹配 }, function (res) { /* { tmCode: 200, //200:成功 tmMsg: "", //提示文字信息 }*/ }) ~~~ ~~~ //页面拦截APP滑动 AppBridgeGlobal.tmInterceptScroll({ "interceptScroll": 1,  //1拦截,2不拦截 }, function (res) { /* { tmCode: 200, //200:成功 tmMsg: "", //提示文字信息 }*/ }) ~~~ ~~~ //跳转微信小程序 AppBridgeGlobal.gotoWXMiniProgram({ "username":"",//小程序原始ID "path":"",//小程序路径,可没有,如果没有表示跳转小程序首页 "type":""//小程序类型 0:正式版  1:体验版  2测试版 }, function (res) { /* { tmCode: 200, //200:成功;其他:失败 tmMsg: "", //提示文字信息 }*/ }) ~~~ ~~~ //保存图片到本地相册 AppBridgeGlobal.tmSavePictureToAlbum({ "pictureBase64":"",//图片Bae64字符串 "pictureUrl":"",//图片url }, function (res) { //pictureBase64和pictureUrl 二选一,如果都传已url为准 }) ~~~