您的位置:首页 > 其它

混合式开发接口文档

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_tokenString该令牌唯一表示该用户、用户的组和用户的特权。
platformStringAPP平台值:Android、iOS
nodeCodeString节点标识,代表连接的是哪个节点服务器,该值是手机应用获取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

返回说明

参数参数类型说明
uuidString通用唯一识别码

获取手机APP版本号和版本名称

接口名称

ydh.device.getAppVersion

返回说明

参数参数类型说明
platformStringAPP平台值:Android、iOS
versionCodeStringAPP的版本号
versionNameStringAPP的版本名称

启动器

获取当前网络类型

接口名称

ydh.device.getNetworkType

返回说明

参数参数类型说明
resultStringresult值: wifi、2g、3g、4g、unknown、none,none表示离线

跳转至新的H5界面

接口名称

ydh.device.openPage

参数说明

参数参数类型是否必须说明
urlString新的url地址
titleString界面标题,用于设置界面标题,如果为空则界面使用默认的标题
返回说明



弹窗

confirm

接口名称

ydh.device.showConfirm

参数说明

参数参数类型说明
titleString标题
messageString消息说明
buttonLabelsArray[String]按钮名称,1~3个
返回说明

参数参数类型说明
buttonIndexinteger被点击按钮的索引值,Number类型,从0开始,0~2

toast

接口名称

ydh.device.showToast

参数说明

参数参数类型说明
textString提示信息
返回说明



showPreloader

接口说明

显示浮层,请和hidePreloader配对使用

接口名称

ydh.device.showPreloader

参数说明

参数参数类型说明
textStringloading显示的字符,空表示不显示文字
返回说明



hidePreloader

接口说明

隐藏浮层,请和showPreloader配对使用

接口名称

ydh.device.showPreloader

参数说明



返回说明



业务

获取accessToken

接口名称

ydh.biz.getAccessToken

参数说明



返回说明

参数参数类型说明
accessTokenString访问令牌

切换账号

接口名称

ydh.biz.changeAccount

接口说明

调用此接口将会跳转到切换账号界面。

参数说明



返回说明



注销

接口名称

ydh.biz.logout

接口说明

调用此接口将会注销,并跳转到登录界面。

参数说明



返回说明



分享

接口名称

ydh.biz.shareContent

参数说明

参数参数类型说明
urlStringurl地址
titleString分享标题
contentString分享内容
imageString分享的图片
返回说明



图片浏览器

接口说明

调用此api,将显示一个图片浏览器

接口名称

ydh.biz.showImages

参数说明

参数参数类型说明
urlsArray[String]图片地址列表
currentString当前显示的图片链接
返回说明



保存图片到手机

接口说明

调用此api,将图片保存到手机

接口名称

ydh.biz.saveImage

参数说明

参数参数类型是否必须说明
urlString图片地址
nameString图片名称,默认是yyyyMMddHHmmss.jpg,后缀名根据实际的图片类型而定
返回说明



日期选择器

接口说明

注意:format只支持android系统规范,即2015-03-31格式为yyyy-MM-dd

接口名称

ydh.biz.pickDate

参数说明

参数参数类型说明
formatStringformat只支持android系统规范,即2015-03-31格式为yyyy-MM-dd
valueString默认显示日期
返回说明

参数参数类型说明
valueString返回选择的日期

选择图片上传(多图片,拍照是单图片)

接口说明

将在成功上传之后回调onSuccess方法,返回图片链接。如果选择了拍照上传,则拍完照后马上上传,上传完毕直接返回url给H5页面。调用此接口后,APP将会启动图片选择界面,用户选择图片就进入上传图片等待,待图片上传完毕后将返回图片url数组。

接口名称

ydh.biz.uploadImages

参数说明

参数参数类型说明
multipleBoolean是否多选,默认false
maxNumbermax为正整数,最多可选个数
attachmentTypeNumber附件类型,attachmentType为正整数,1是商品附件,2是订单附件,3是通知附件,4是付款记录附件
返回说明

参数参数类型说明
urlsArray[String]图片地址列表

选择文件上传(单文件)

接口说明

将在成功上传之后回调onSuccess方法,返回文件链接。

接口名称

ydh.biz.uploadFile

参数说明

参数参数类型说明
attachmentTypeNumber附件类型,attachmentType为正整数,1是商品附件,2是订单附件,3是通知附件,4是付款记录附件
返回说明

参数参数类型说明
urlString文件url地址

电话

打电话

接口名称

ydh.biz.call

参数说明

参数参数类型说明
phoneString电话号码

发短信

接口名称

ydh.biz.sendMessage

参数说明

参数参数类型说明
telephoneString手机号码
textString短信内容

扫码

接口名称

ydh.biz.scanCode

参数说明

参数参数类型说明
typeStringtype为qrCode或者barCode
返回说明

参数参数类型说明
textString扫码内容

下载

接口名称

ydh.biz.download

接口说明

使用系统浏览器进行下载

参数说明

参数参数类型说明
downloadUrlString下载地址
返回说明



支付

支付宝支付

接口名称

ydh.biz.alipay.pay

参数说明

参数参数类型说明
infoString需要构建的订单信息,参考支付宝文档:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.CKTNjZ&treeId=59&articleId=103663&docType=1
返回说明

透传了支付宝支付接口处理订单的结果,请按支付宝文档正确处理订单信息。

参数参数类型说明
memoString保留参数,一般无内容
resultString本次操作返回的结果数据
resultStatusString本次操作的状态返回值,标识本次调用的结果,参考: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

参数说明

参数参数类型说明
titleString控制标题文本,空字符串表示显示默认文本
返回说明



设置导航栏可见性

接口名称

ydh.biz.navigation.setVisibility

参数说明

参数参数类型说明
visibilityInteger0代表不可见,1代表可见
返回说明



设置导航栏背景颜色

接口名称

ydh.biz.navigation.setBackgroundColor

参数说明

参数参数类型说明
colorStringARGB格式,如#deffffff
返回说明



设置导航栏右侧多个按钮

接口名称

ydh.biz.navigation.setMenu

参数说明

参数参数类型是否必须说明
backgroundColorString下拉菜单背景色
itemsJSONOArray多个按钮的属性数组
item.idString每一个item的唯一标示
item.iconIdString预置icon的索引值
item.textStringitem的文字属性
返回说明

点击任一一个按钮将会回调onSuccess,并返回被点击item的id

多个按钮排序规则

items个数小于等于两个,将在右上角直接排列,多于两个则变成菜单形式

底部标签栏

ydh.biz.tab
注意:此接口只在带标签栏的页面起效,不通用


设置底部标签栏可见性

接口名称

ydh.biz.tab.setVisibility

参数说明

参数参数类型说明
visibilityInteger0代表不可见,1代表可见
返回说明



应用界面

打开订单列表界面

接口名称

ydh.biz.ui.openOrderList

参数说明



返回说明



打开订单详情界面

接口名称

ydh.biz.ui.openOrderDetail

参数说明

参数参数类型说明
orderNumString订单号
返回说明



打开退单详情界面

接口名称

ydh.biz.ui.openReturnOrderDetail

参数说明

参数参数类型说明
returnOrderNumString退单号
返回说明



打开客户反馈列表

接口名称

ydh.biz.ui.openCustomerFeedbackList

参数说明



返回说明



打开系统反馈列表界面

接口名称

ydh.biz.ui.openSystemFeedbackList

参数说明



返回说明



打开通知详情界面

接口名称

ydh.biz.ui.openNoticeDetail

参数说明

参数参数类型说明
noticeIdLong待定
返回说明



特别说明

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: