## **与客户端交互步骤**
#### **步骤一:引入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为准
})
~~~