混合式开发接口文档
2016-02-16 18:34
281 查看
通用
页面引入js文件
js文件版本在添加升级功能时地址会变化,如有需要(比如要使用新增的js-api),请随时关注地址变更。但是旧版本js文件也将一直可用。http://res.dinghuo123.com/app/ydh/dist/js/lib/hybrid.js
这个脚本在客户端执行,判断平台后实际使用不同代码。如果想减少交互次数,可以在服务器直接判断平台后,调取不同的js代码。
Android:http://res.dinghuo123.com/app/ydh/dist/js/lib/hybrid/android/cordova.js
iOS:http://res.dinghuo123.com/app/ydh/dist/js/lib/hybrid/ios/cordova.js
全局变量、命名空间
直接引入hybird.js会得到一个全局变量ydh命名空间:设备(ydh.device)、业务(ydh.biz)
权限验证
H5应用模块的URL后面增加参数access_token,access_token由移动应用提供。当网页超时发生302异常时,网页程序需要从APP获取accessToken,之后通过身份验证接口重新认证身份。
参数说明
参数 | 参数类型 | 必须 | 说明 |
---|---|---|---|
access_token | String | 是 | 该令牌唯一表示该用户、用户的组和用户的特权。 |
platform | String | 是 | APP平台值:Android、iOS |
nodeCode | String | 是 | 节点标识,代表连接的是哪个节点服务器,该值是手机应用获取accessToken时返回的 |
接口约定
所有接口都为异步接受一个object类型的参数
成功回调onSuccess(某些异步接口的成功回调,将在事件触发时被调用,具体详情请查看相关onSuccess回调时机,未做描述的即为同步接口)
失败回调 onFail
如下showToast的接口:
function myBtnOneOnClick(){ ydh.device.showToast(function(result){ alert("success:"+result); },function(err){ alert("error:"+err); },{ text:'Hello world again!' }); }
设备
ydh.device
获取通用唯一识别码
接口名称ydh.device.getUuid
返回说明
参数 | 参数类型 | 说明 |
---|---|---|
uuid | String | 通用唯一识别码 |
获取手机APP版本号和版本名称
接口名称ydh.device.getAppVersion
返回说明
参数 | 参数类型 | 说明 |
---|---|---|
platform | String | APP平台值:Android、iOS |
versionCode | String | APP的版本号 |
versionName | String | APP的版本名称 |
启动器
获取当前网络类型
接口名称ydh.device.getNetworkType
返回说明
参数 | 参数类型 | 说明 |
---|---|---|
result | String | result值: wifi、2g、3g、4g、unknown、none,none表示离线 |
跳转至新的H5界面
接口名称ydh.device.openPage
参数说明
参数 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
url | String | 是 | 新的url地址 |
title | String | 否 | 界面标题,用于设置界面标题,如果为空则界面使用默认的标题 |
无
弹窗
confirm
接口名称ydh.device.showConfirm
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
title | String | 标题 |
message | String | 消息说明 |
buttonLabels | Array[String] | 按钮名称,1~3个 |
参数 | 参数类型 | 说明 |
---|---|---|
buttonIndex | integer | 被点击按钮的索引值,Number类型,从0开始,0~2 |
toast
接口名称ydh.device.showToast
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
text | String | 提示信息 |
无
showPreloader
接口说明显示浮层,请和hidePreloader配对使用
接口名称
ydh.device.showPreloader
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
text | String | loading显示的字符,空表示不显示文字 |
无
hidePreloader
接口说明隐藏浮层,请和showPreloader配对使用
接口名称
ydh.device.showPreloader
参数说明
无
返回说明
无
业务
获取accessToken
接口名称ydh.biz.getAccessToken
参数说明
无
返回说明
参数 | 参数类型 | 说明 |
---|---|---|
accessToken | String | 访问令牌 |
切换账号
接口名称ydh.biz.changeAccount
接口说明
调用此接口将会跳转到切换账号界面。
参数说明
无
返回说明
无
注销
接口名称ydh.biz.logout
接口说明
调用此接口将会注销,并跳转到登录界面。
参数说明
无
返回说明
无
分享
接口名称ydh.biz.shareContent
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
url | String | url地址 |
title | String | 分享标题 |
content | String | 分享内容 |
image | String | 分享的图片 |
无
图片浏览器
接口说明调用此api,将显示一个图片浏览器
接口名称
ydh.biz.showImages
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
urls | Array[String] | 图片地址列表 |
current | String | 当前显示的图片链接 |
无
保存图片到手机
接口说明调用此api,将图片保存到手机
接口名称
ydh.biz.saveImage
参数说明
参数 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
url | String | 是 | 图片地址 |
name | String | 否 | 图片名称,默认是yyyyMMddHHmmss.jpg,后缀名根据实际的图片类型而定 |
无
日期选择器
接口说明注意:format只支持android系统规范,即2015-03-31格式为yyyy-MM-dd
接口名称
ydh.biz.pickDate
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
format | String | format只支持android系统规范,即2015-03-31格式为yyyy-MM-dd |
value | String | 默认显示日期 |
参数 | 参数类型 | 说明 |
---|---|---|
value | String | 返回选择的日期 |
选择图片上传(多图片,拍照是单图片)
接口说明将在成功上传之后回调onSuccess方法,返回图片链接。如果选择了拍照上传,则拍完照后马上上传,上传完毕直接返回url给H5页面。调用此接口后,APP将会启动图片选择界面,用户选择图片就进入上传图片等待,待图片上传完毕后将返回图片url数组。
接口名称
ydh.biz.uploadImages
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
multiple | Boolean | 是否多选,默认false |
max | Number | max为正整数,最多可选个数 |
attachmentType | Number | 附件类型,attachmentType为正整数,1是商品附件,2是订单附件,3是通知附件,4是付款记录附件 |
参数 | 参数类型 | 说明 |
---|---|---|
urls | Array[String] | 图片地址列表 |
选择文件上传(单文件)
接口说明将在成功上传之后回调onSuccess方法,返回文件链接。
接口名称
ydh.biz.uploadFile
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
attachmentType | Number | 附件类型,attachmentType为正整数,1是商品附件,2是订单附件,3是通知附件,4是付款记录附件 |
参数 | 参数类型 | 说明 |
---|---|---|
url | String | 文件url地址 |
电话
打电话
接口名称ydh.biz.call
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
phone | String | 电话号码 |
发短信
接口名称ydh.biz.sendMessage
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
telephone | String | 手机号码 |
text | String | 短信内容 |
扫码
接口名称ydh.biz.scanCode
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
type | String | type为qrCode或者barCode |
参数 | 参数类型 | 说明 |
---|---|---|
text | String | 扫码内容 |
下载
接口名称ydh.biz.download
接口说明
使用系统浏览器进行下载
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
downloadUrl | String | 下载地址 |
无
支付
支付宝支付
接口名称ydh.biz.alipay.pay
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
info | String | 需要构建的订单信息,参考支付宝文档:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.CKTNjZ&treeId=59&articleId=103663&docType=1 |
透传了支付宝支付接口处理订单的结果,请按支付宝文档正确处理订单信息。
参数 | 参数类型 | 说明 |
---|---|---|
memo | String | 保留参数,一般无内容 |
result | String | 本次操作返回的结果数据 |
resultStatus | String | 本次操作的状态返回值,标识本次调用的结果,参考:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.MMxZUF&treeId=59&articleId=103671&docType=1 |
导航栏
ydh.biz.navigation
设置导航栏标题
接口名称ydh.biz.navigation.setTitle
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
title | String | 控制标题文本,空字符串表示显示默认文本 |
无
设置导航栏可见性
接口名称ydh.biz.navigation.setVisibility
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
visibility | Integer | 0代表不可见,1代表可见 |
无
设置导航栏背景颜色
接口名称ydh.biz.navigation.setBackgroundColor
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
color | String | ARGB格式,如#deffffff |
无
设置导航栏右侧多个按钮
接口名称ydh.biz.navigation.setMenu
参数说明
参数 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
backgroundColor | String | 否 | 下拉菜单背景色 |
items | JSONOArray | 是 | 多个按钮的属性数组 |
item.id | String | 是 | 每一个item的唯一标示 |
item.iconId | String | 否 | 预置icon的索引值 |
item.text | String | 是 | item的文字属性 |
点击任一一个按钮将会回调onSuccess,并返回被点击item的id
多个按钮排序规则
items个数小于等于两个,将在右上角直接排列,多于两个则变成菜单形式
底部标签栏
ydh.biz.tab 注意:此接口只在带标签栏的页面起效,不通用
设置底部标签栏可见性
接口名称ydh.biz.tab.setVisibility
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
visibility | Integer | 0代表不可见,1代表可见 |
无
应用界面
打开订单列表界面
接口名称ydh.biz.ui.openOrderList
参数说明
无
返回说明
无
打开订单详情界面
接口名称ydh.biz.ui.openOrderDetail
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
orderNum | String | 订单号 |
无
打开退单详情界面
接口名称ydh.biz.ui.openReturnOrderDetail
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
returnOrderNum | String | 退单号 |
无
打开客户反馈列表
接口名称ydh.biz.ui.openCustomerFeedbackList
参数说明
无
返回说明
无
打开系统反馈列表界面
接口名称ydh.biz.ui.openSystemFeedbackList
参数说明
无
返回说明
无
打开通知详情界面
接口名称ydh.biz.ui.openNoticeDetail
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
noticeId | Long | 待定 |
无
特别说明
html里的事件不能使用内联的方式,必须使用javascript为document添加事件监听方式。document.getElementById("myBtnOne").addEventListener("click", myBtnOneOnClick);
cordova开发如何解决中文乱码?
在html页面增加如下代码。
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
出现乱码的原因是网页与平台(Android/iOS)的编码不一致,而目前Android和iOS项目开发所用的编码均为utf-8,所以在网页需要添加编码配置。
Android平台上将APP上的js代码直接放到服务器,然后在APP里调用网页,无法正常运行。
针对WhitelistPlugin类,需要复写shouldAllowBridgeAccess方法。
/** * 链接远程url需要覆写这个方法 * @param url * @return */ @Override public Boolean shouldAllowBridgeAccess(String url) { return true; }
无法正常运行的的原因是:WhitelistPlugin默认只支持本地url的加载,而http开头的url则无法通过,所以导致无法正常运行。复写shouldAllowBridgeAccess返回true,则允许通过所有方式进行加载。
Android平台上将APP上的js代码直接放到服务器,然后在iOS平台进行访问,无法正常运行。
由于cordova在Android和iOS平台上SDK的代码不一样,所以出现无法正常运行情况。
解决思路:将Android和iOS平台上的cordova关于js的代码混合起来,然后通过外部参数决定使用哪一个平台的代码。
解决方案:新增hybird.js文件实现逻辑,在url上新增platform参数,值是Android或者iOS,如下
var queryString = getQueryString("platform"); if(queryString=='Android'){ include('platform/android/cordova.js'); }else if(queryString=='iOS'){ include('platform/ios/cordova.js'); } else { alert('Not Android or iOS platform!'); }
本地调试时,增加platform参数
<content src="index.html?platform=Android" />
远程调试时,增加platform参数
http://res.dinghuo123.com/app/www/index.html?platform=iOS
相关文章推荐
- [LintCode]Insertion Sort List
- android 通过包名杀死进程
- 215. Kth Largest Element in an Array LeetCode
- 【React Native开发】React Native控件之WebView组件详解以及实例使用(22)
- Codeforces Round #127 (Div. 1) C. Fragile Bridges dp
- redis 数据类型详解 以及 redis适用场景场合
- 从一个实例(整数幂指数)进行算法时间复杂度的分析
- Android消息机制
- FragmentManage详解
- JS中数组Array的用法示例用法详解
- Linux实现的IEEE 802.1Q VLAN
- 用HOG+SVM在Inria数据集上做行人检测与评测
- 成为优秀程序员的10条黄金法则
- SVN的日常操作指南
- Java api 入门教程 之 JAVA的文件操作
- 313. Super Ugly Number LeetCode
- Windows下cocos2d-x开发环境的搭建,包含Android开发环境
- python 数据挖掘基础 入门
- 获取系统内存,CPU使用率以及状态栏高度
- Java/Android中四种引用类型