Appearance
原生SDK
为增强前端开发能力,使用原生封装供前端调用的SDK
SDK汇总
初始化 打开app 检测应用 判断缓存,下载 定位信息 屏幕旋转 向系统请求权限 打开文档 截屏监听 企业微信分享 扫码 写入通讯录 实时语音监听 设置状态栏样式 隐藏导航栏
AlipayJSBridgeReady
初始化
示例代码
javascript
function ready(callback) {
if (window.AlipayJSBridge) {
callback && callback();
} else {
document.addEventListener('AlipayJSBridgeReady', callback, false);
}
}
ready(function() {
alert('bridge ready');
});openApp
打开手机上其它应用程序
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| iosUrl | 目标应用的url | 是 [iOS] |
| appParam | 参数 | 否 |
| androidPkg | 目标应用的包名 | 是 [Android] |
| uri | 指定目标应用响应的uri | 否 [Android] |
| mimeType | 指定目标应用的响应数据类型 | 否 [Android] |
示例代码
javascript
window.AlipayJSBridge.call('openApp', {
iosUrl: 'wxwork://',
appParam: {"keyword":"APICloud"},
androidPkg: 'android.intent.action.VIEW', //'com.tencent.mobileqq' //'android.intent.action.VIEW'
uri: 'wxwork://',
mineType:''
}, function (result,ret) {
alert(JSON.stringify(result))
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
| msg | 错误提示 | 无 |
| data | 错误码 | 无 |
appInstalled
判断设备上面是否已安装指定应用;如(企业微信)
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| appBundle | Android:包名;ios:URL Scheme | 是 |
示例代码
javascript
window.AlipayJSBridge.call('appInstalled', {
appBundle: 'com.zhangjiangwe.tmb'
}, function (result) {
alert(JSON.stringify(result))
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
| msg | 错误提示 | |
| data | 错误码 |
fileOperation
判断缓存文件,图片是否存在
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| oprationType | 1:判断;2:下载 | 是 |
| fileName | 文件名 | 是 |
| fileType | 文件类型 | 是 |
| fileUrl | 缓存路径 | 是 |
| folderName | 缓存目录 | 是 |
示例代码
javascript
window.AlipayJSBridge.call('fileOperation',
{
oprationType: 1,
fileName: 'baidu771', //'earth.png' //'test.pdf' //'tdoc.docx'
fileType: 'jpg', //doc、png,jpg,xls,xlsx,mp3,zip
folderName: 'csc'
},
function (result){
//前端展示方法如下
$('.img').attr('src','/zxjtnativefile/'+result.data.path)
}
);返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
| data | 存储的路径 |
fileOperation
缓存文件和图片,下载文件和图片(默认下载到相册)
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| oprationType | 2:下载 | 是 |
| isSaveSystem | 1:下载,其它缓存 | 默认缓存 |
| fileName | 文件名称 | 是 |
| fileType | 文件类型 | 是 |
| fileUrl | 路径:http,base64 | 是 |
| folderName | 缓存目录 | 是 |
示例代码
javascript
//重复调用,不要写在for ,forEach中调用,确保保存成功后,再次调用
AlipayJSBridge.call('fileOperation', {
oprationType: 2,
isSaveSystem:1,
fileName: 'result', //'earth.png' //'test.pdf' //'tdoc.docx'
fileType: 'png', //doc、png,jpg,xls,xlsx,mp3,zip
//fileUrl 为base64时不需要data:image/png;base64,
fileUrl: 'https://www.baidu.com/img/flexible/logo/pc/result.png',
folderName: 'csc'
}, function (result) {
shareImg = result.data.path;))
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
| data | 存储的路径 | 无 |
getPositioning
根据百度地图SDK,返回定位信息:经度、纬度等其他需要的参数
示例代码
javascript
AlipayJSBridge.call('getPositioning', {}, function (result) {
alert(JSON.stringify(result))
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
| data | latitude:经度,longitude:纬度 |
setScreenRotation
实现屏幕旋转
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| portrait_up | 竖屏,屏幕在home键的上面 | 是 |
| portrait_down | 屏幕在home键的下面 ,X系列不支持 | 是 |
| landscape_left | home键的左边 | 是 |
| landscape_right | 屏幕在home键的右边 | 是 |
示例代码
javascript
AlipayJSBridge.call('setScreenRotation', {
orientation: 'landscape_left'
}, function (result) {
alert(JSON.stringify(result))
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
requestPermission
向系统请求某个或多个权限
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| camera | 相机权限 | 否 |
| contacts | 通讯录权限,联系人读取/写入 | 否 |
| microphone | 使用麦克风录制音频 | 否 |
| photo | 相册权限 访问相册/本地存储空间 | 否 |
| location | 定位权限 | 否 |
| locationAlways | 持续定位权限 后台定位 | 否 |
| calendar | 日历读取/写入。(Android) | 否 |
| calendars | 日历读取/写入。(iOS) | 否 |
| phone | 直接拨打电话/获取手机号码 | 否 |
| sensor | 传感器.(Android)陀螺仪 | 否 |
| sms | 读取短信/后台发送短信 (Android) | 否 |
| storage | 读取/写入/相册/多媒体/本地存储空间。(Android) | 否 |
| speech | 语音识别权限。(iOS) | 否 |
| mediaLibrary | 媒体库权限(上传附件) | 否 |
| locationFullAccuracy | //临时精确定位,请求时需传入purposeKey参数,申请的临时精确定位只在App生命周期内有效 | 否 |
示例代码
javascript
AlipayJSBridge.call('requestPermission', {
list: ['photo']
}, function (result) {
alert(JSON.stringify(result))
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
openFileOperation
打开文档,图片
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| fileType | 文件类型 | 是 |
| folderName | 目录名称 | 是 |
| fileName | 文件名 | 是 |
| fileUrl | http,缓存文件,缓存的路径通过fileOperation方法获得 | 是 |
示例代码
javascript
AlipayJSBridge.call('openFileOperation', {
fileName: '164146', //'earth.png' //'test.pdf' //'tdoc.docx'
fileType: 'mp4', //doc、png,jpg,xls,xlsx,mp3,zip
fileUrl: host + '164146.mp4',
folderName: 'csc'
}, function (result) {
alert(JSON.stringify(result));
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
screenCaptureOperation
系统截屏操作监听
示例代码
javascript
//Tips:确保同时只有一次call调用,重复调用call同一个方法,可能收到对应多次回调
AlipayJSBridge.call('screenCaptureOperation', {}, function (result) {
alert(JSON.stringify(result));
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
wxShare
企业微信分享
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| type | link,image,text,video,file | 是 |
示例代码
javascript
AlipayJSBridge.call('wxShare', {
type: 'link',
title: '分享标题',
description: '分享内容',
thumbUrl: 'https://www.baidu.com/img/flexible/logo/pc/result.png',//图标地址
webpageUrl: 'http://www.baidu.com' //地址
}, function (result) {
alert(JSON.stringify(result))
});
AlipayJSBridge.call('wxShare', {
type: 'image',
fileName: '夏天.jpg',
filePath: shareImg,//图片地址必须先fileOperation获得路径
}, function (result) {
alert(JSON.stringify(result))
});
AlipayJSBridge.call('wxShare', {
type: 'text',
content: '夏天下雨,夏天下雨夏天下雨夏天下雨夏天下雨夏天下雨夏天下雨'
}, function (result) {
alert(JSON.stringify(result))
});
AlipayJSBridge.call('wxShare', {
type: 'video',
fileName: '夏天.mp4',
filePath: shareMp4,//地址必须先通过fileOperation获得路径
}, function (result) {
alert(JSON.stringify(result))
});
AlipayJSBridge.call('wxShare', {
type: 'file',
fileName: '夏天.doc',
filePath: shareDoc,//地址必须先通过fileOperation获得路径
}, function (result) {
alert(JSON.stringify(result))
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
scanningOperation
扫码
示例代码
javascript
//Tips:确保同时只有一次call调用,重复调用call同一个方法,可能收到对应多次回调
AlipayJSBridge.call('scanningOperation', {}, function (result) {
alert(JSON.stringify(result));
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
addressBookOperation
实现名片写入通讯录操作
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| name | 姓名 | 是 |
| mobile | 手机号 | 否 |
| 邮箱 | 否 | |
| company | 公司 | 否 |
| address | 地址 | 否 |
| position | 职务 | 否 |
| phone | 电话 | 否 |
示例代码
javascript
AlipayJSBridge.call('addressBookOperation', {
name: '张三',
mobile: '17600006002',
email: '123@123.com',
company: '聚通达集团',
address: '北京市朝阳区四惠东艺术博览园C座4楼',
position: '搬砖工',
phone: '010-1121121126'
}, function (result) {
alert(JSON.stringify(result));
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
audioDictationOperation
实时语音开关
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| type | 0:开始,1:结束 | 是 |
示例代码
javascript
window.AlipayJSBridge.call('audioDictationOperation', {
'type':'0',
}, function (result) {
});返回字段解释
| 名称 | 描述 | 说明 |
|---|---|---|
| code | 错误码 | 1:成功,其它:失败 |
audioDictationOperation
实时语音监听
示例代码
javascript
//必须打开才能识别
document.addEventListener('audioDictationOperation', function (e) {
let a = JSON.parse(e.data.data.content)
if(a.header.status == 20000000 && a.header.name == "SentenceEnd"){
$('#yyfy').append('<p>'+JSON.stringify(a.payload.result)+'</p>')
}else{
$('#yyfy').append('<p>--'+a.header.name+'--</p>')
}
}, false);返回字段解释文档
setStatusBarStyle
设置状态栏样式
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| fontColor | white:白色,black:黑色 | 是 |
示例代码
javascript
window.AlipayJSBridge.call(
"setStatusBarStyle",
{ fontColor: "white" },
function (result) {
alert(JSON.stringify(result))
});showTitleBar
隐藏导航栏
传参字段解释
| 参数 | 说明 | 是否必填 |
|---|---|---|
| showTitleBar | get方式 0,取消,1显示;pushWindow方式 false:取消,true显示 | 是 |
示例代码
javascript
//get方式
"http://localhost:8080/index.html?showTitleBar=0"
//pushWindow方式方式
AlipayJSBridge.call('pushWindow', {
url: 'https://m.taobao.com/', // 要打开页面的 URL
// 打开页面的配置参数
param: {
showTitleBar: false,
}
});