混合开发接口文档

本文档详细介绍了混合开发中涉及的各种接口,包括通用接口、设备相关接口、业务接口、状态栏和界面操作等。关键接口如获取设备唯一识别码、网络类型、权限验证、调用系统功能(如打电话、发短信)以及支付接口等,提供了详细的参数说明和使用示例。
摘要由CSDN通过智能技术生成

混合开发接口文档

通用

页面引入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)

权限验证

整个app采用全部H5嵌套,原生app只提供部分接口。
原生App应用模块的URL后面所需参数access_token,access_token由H5提供。

接口约定

  • 所有接口都为异步
  • 接受一个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表示离线

toast

  • 接口名称

    ydh.device.showToast

  • 返回说明

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

业务

ydh.biz

帐号信息

  • 接口说明
    为了确保数据的正确性,请在收到该接口成功回调后进行下一步操作

  • 接口名称

    ydh.biz.setAccountData

  • 参数说明

    参数参数类型说明
    userNameString当前用户名
    accessTokenString访问令牌
    accountTypeString帐号类型(”corp”管理端,”agent”订货端)
    expiresInLong过期时间(秒)

打电话

  • 接口名称

    ydh.biz.call

  • 参数说明

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

发短信

  • 接口名称

    ydh.biz.sendMessage

  • 参数说明

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

文本复制

  • 接口说明

    调用此接口,进行文本复制

  • 接口名称

    ydh.biz.copyText

  • 参数说明

    参数参数类型说明
    copyTextString复制的文本

扫码

  • 接口名称

    ydh.biz.scanCode

  • 参数说明

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

保存图片到手机

  • 接口名称

    ydh.biz.saveImage

  • 参数说明

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

分享

  • 接口名称

    ydh.biz.shareContent

  • 参数说明

    参数参数类型说明
    urlStringurl地址
    titleString分享标题
    contentString分享内容
    imageString分享的图片
    platformsString传入1到5字符串用逗号隔开(例”1,2,3,4,5”),其中1-SINA 2-QQ 3-QZONE 4-WEIXIN 5-WEIXIN_CIRCLE

下载

  • 接口说明
    ios专用接口
  • 接口名称

    ydh.biz.download

  • 参数说明

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

订单蓝牙打印

  • 接口名称

    ydh.biz.orderBluetoothPrint

  • 参数说明

    参数参数类型说明
    orderNumString订单编号

订单蓝牙打印

  • 接口名称

    ydh.biz.orderBluetoothPrint

  • 参数说明

    参数参数类型说明
    orderNumString订单编号

获取手势密码设置状态

  • 接口说明

    调用此接口,获取手势密码设置状态

  • 接口名称

    ydh.biz.getGesturePasswordStatus

  • 参数说明

  • 返回说明

    参数参数类型说明
    gestureStatusString手势密码状态,0:未启用,1:已启用 ,-1:未设置

获取Android包的渠道值

  • 接口说明
    android专用接口
  • 接口名称
    ydh.biz.getChannelValue
  • 参数说明

  • 返回说明

    参数参数类型说明
    channelIDString渠道id
    channelNameString渠道名称

附件下载本地

  • 接口说明
    android专用接口
  • 接口名称
    ydh.biz.toDownloadAttachment

  • 参数说明

    参数参数类型说明
    attachmentString附件名称
    downloadUrlString附件下载地址
  • 返回说明

获取附件下载状态

  • 接口说明
    android专用接口
    调用此接口,附件是否下载

  • 接口名称

    ydh.biz.onAttachmentListStatus

  • 参数说明

    参数参数类型说明
    attachmentListArrayList附件集合
  • Object说明

    参数参数类型说明
    attachmentString附件
    fileNameString文件名称
  • 返回说明

    参数参数类型说明
    attachmentListStatusArrayList附件下载状态集合
  • Object说明

    参数参数类型说明
    attachmentString附件
    fileNameString文件名称
    isDownloadbooleanture已下载,false未下载

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

  • 接口说明

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

  • 接口名称

    ydh.biz.uploadImages

  • 参数说明

    参数参数类型说明
    multipleBoolean是否多选,默认false
    maxNumbermax为正整数,最多可选个数
    uploadUrlString上传的地址
  • 返回说明

    参数参数类型说明
    imageInfosArray[Object]图片信息列表,信息对象包含attachment,fileName和size等信息

选择文件上传(单文件)

  • 接口说明

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

  • 接口名称

    ydh.biz.uploadFile

  • 参数说明

    参数参数类型说明
    uploadUrlString上传的地址
  • 返回说明

    参数参数类型说明
    fileInfoObject信息对象包含attachment,attachmentType,fileName和size等信息

拍照上传图片

  • 接口说明

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

  • 接口名称

    ydh.biz.uploadTakePicture

  • 参数说明

    参数参数类型说明
    uploadUrlString上传的地址
  • 返回说明

    参数参数类型说明
    fileInfoObject信息对象包含attachment,attachmentType,fileName和size等信息

状态栏

ydh.biz.statusBar

设置状态栏属性

  • 接口名称

    ydh.biz.statusBar.setAttributes

  • 参数说明

    参数参数类型是否必须说明
    backgroundColorString背景颜色,ARGB格式,如#deffffff,为空则不设置

支付

ydh.biz.alipay

支付宝支付

界面

  ydh.biz.ui

打开打印链接界面

  • 接口名称

    ydh.biz.ui.openBluetoothSetting

  • 参数说明

打开手势密码界面

  • 接口名称

    ydh.biz.ui.openSetGesturesPassword

  • 参数说明

  • 返回说明

跳转至新的H5界面

  • 接口名称

    ydh.biz.ui.openPage

  • 参数说明

    参数参数类型是否必须说明
    urlString新的url地址
    visiblebooleanfalse表示不显示菜单栏(此时可以不用传title,background),true表示显示菜单栏
    titleString界面标题,用于设置界面标题,如果为空则界面使用默认的标题
    backgroundString背景颜色,ARGB格式,如#deffffff,为空则不设置
  • 返回说明

关闭新的H5界面

  • 接口名称

    ydh.biz.ui.finishPage

  • 参数说明

  • 返回说明

  • 备注
    关闭的界面是调用openPage打开的新界面

跳转至易订货主界面

  • 接口名称

    ydh.biz.ui.openMainActivity

  • 参数说明

    参数参数类型是否必须说明
    urlString主界面的url地址
  • 返回说明
  • 备注
    跳转到易订货主界面,发一个事件去结束登录界面和新开的H5界面

跳转至登录界面

  • 接口名称
    ydh.biz.ui.openLoginActivity

  • 参数说明

  • 返回说明

特别说明

1.html里的事件不能使用内联的方式,必须使用javascript为document添加事件监听方式。

document.getElementById("myBtnOne").addEventListener("click", myBtnOneOnClick);

2.cordova开发如何解决中文乱码?
在html页面增加如下代码。

<meta http-equiv="Content-type" content="text/html; charset=utf-8">

出现乱码的原因是网页与平台(Android/iOS)的编码不一致,而目前Android和iOS项目开发所用的编码均为utf-8,所以在网页需要添加编码配置。

3.Android平台上将APP上的js代码直接放到服务器,然后在APP里调用网页,无法正常运行。
针对WhitelistPlugin类,需要复写shouldAllowBridgeAccess方法。

 /**
  * 链接远程url需要覆写这个方法
  * @param url
  * @return
  */
  @Override
  public Boolean shouldAllowBridgeAccess(String url) {
      return true;
  }

4.无法正常运行的的原因是: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值