APP接入

版本:V2.1.0

总览

此文档介绍了如何接入滴滴开放平台,并使用滴滴开放平台的相关服务。

Android接入

接入SDK

  1. 下载官网最新 SDK 包 didi_sdk_v2.1.xxxx.aar
  2. 打开 Android Studio
  3. aar 拷贝至接入工程 libs 目录
  4. 在接入工程 build.gradle 中配置 aar 加载目录
     repositories {
         flatDir {
             dirs 'libs'
         }
     }
    
  5. 在接入工程 dependencies 中添加SDK 的 aar 依赖
     dependencies {
         compile(name: 'didi_sdk_v2.1.xxxx', ext: 'aar')
     }
    

注: SDK中包 so 动态库,支持主流 cpu 架构,目前所有支持的ABI有:armeabiarmeabi-v7aarm64-v8ax86 ,为减少 SDK 体积,aar 中默认值包含 armeabi-v7a 架构 so,有需要其他架构 so 的用户,请自行从官网下载 SDK so 集合,将相应的架构 so 复制到接入工程 libs 目录下。

使用滴滴服务

注意 由于滴滴的服务依赖于定位,如果您没有主动传入定位信息则滴滴开放平台会自动定位,由于系统定位精度差定位速度慢,推荐您接入了第三方定位SDK。

在传入已有坐标时对应的maptype参数如下表:

定位厂商 地图类型
腾讯soso soso
高德 soso
百度 baidu
系统默认 wgs84

需要传参数的的Map的key,value都为String,返回值都为Map的key,value都为String,在返回的Map中包含errornoerrormsg,其中errorno为判断返回是否成功的标志,返回0为成功,具体返回值的含义需要根据服务器接口对应文档获取。

1.在入口Activity中调用

DIOpenSDK.registerApp(context,"appid","secret")
// appid和 secret 需要向开放平台申请
DIOpenSDK.setMapSdkType(DIOpenSDK.MapLocationType.*)(可选)

应在调用其他滴滴方法之前调用

2.直接调用打车业务

DIOpenSDK.showDDPage(Context,HashMap<String,String>);

Context参数尽量传Activity 其中HashMap为需要传给滴滴开放平台的参数

名称 类型 说明
fromlat string 出发地纬度
fromlng string 出发地经度
tolat string 目的地纬度
tolng string 目的地经度
biz string 默认选中的业务线类型。1打车,2专车
fromaddr string 出发地地址
fromname string 出发地名称
toaddr string 目的地地址
toname string 目的地名称
phone string 乘客手机号,方便乘客登录使用,会默认补全到登录框中
maptype string 经纬度类型 wgs84/baidu/soso

3.使用滴滴openapi直接调用滴滴接口

在申请appid和secret时,可以同时申请通过滴滴开放平台sdk直接调用滴滴服务器相应接口(需要经过商务协商)或者直接通过服务器和开放平台服务器直接对接。

服务器和服务器对接:

通过在主线程中调用DIOpenSDK.asynGetTicket(Context context, TicketType typeContext context, TicketType type, DDCallBack callBack)或者在分线程中调用DIOpenSDK.syncGetTicket()获取ticket,回传到第三方服务器用来服务器和服务器对接。

直接调用滴滴服务器API

通过在分线程中调用DIOpenSDK.syncCallDDApi(Context context, String apiname, Map<String, String> params)或者在主线程中调用DIOpenSDK.asynCallDDApi(Context context, String apiname, Map<String, String> requestParams, DDCallBack callBack) 即可调用滴滴服务器api具体可以调用的API列表需要跟商务确认。

直接调用滴滴功能页面

通过直接在主线程中调用DIOpenSDK.openPage(Context context,String page, Map<String, String> extra)即可打开滴滴提供的指定的功能性页面,比如登录、订单列表等,如果调用成功返回true调用失败返回false。

调用滴滴司机电话

当您调用滴滴相应功能获取到司机的加密手机号后需要使用DIOpenSDK.callPhone(Context context, String phone)来拨打司机电话。

配置界面UI

SDK提供了自定义界面UI的接口,通过 DIOpenSDK.setUIOptions 设置 UI 参数:

    UIOptions uiOptions = new UIOptions();

    uiOptions.setCloseEnable(true); //设置是否显示关闭按钮
    uiOptions.setProgressBarEnable(false);//设置进度条是否显示
    uiOptions.setProgressBarStyle(R.style.Widget_AppCompat_ProgressBar);//设置进度条样式
    uiOptions.setBackButtonTextColor(Color.RED);//设置返回按钮文字颜色
    uiOptions.setCloseButtonTextColor(Color.BLACK);//设置关闭按钮文字颜色
    uiOptions.setTitleTextColor(Color.YELLOW);//设置标题的文字颜色
    uiOptions.setTitleBarBackgroundResource(R.color.holo_blue_bright);//设置标题栏背景

    DIOpenSDK.setUIOptions(uiOptions);//设置UI参数

ReleaseNote

  • v2.1
    • 升级 openssl 库到 v1.1
    • 解决多个安全漏洞
    • 支持自定义UI

IOS

1 主功能配置

SDK依赖于微信支付,需要拉起微信,所以主工程中的plist中需要添加微信的schema。 framework需要使用定位权限,其中定位的提示文案可以自己设置。 工程Build SettingsOther Linker Flags需要添加 ObjC 项,以确保 .framework 里的类别能加载上

2 SDK注册

App启动后需要使用滴滴开发者中心申请的appid和secret注册SDK,调用方法如下:

[DIOpenSDK registerApp:@"your appId" secret:@"your secret"];

3 调起打车页面

/** 
 * 通过该方法调起滴滴页面
 * @param parentController 需要调起叫车页面的controller 
 * @param animated 展现滴滴页面时是否需要动画 
 * @param optionParams 打开打车页面的可选参数,参数列表可以参见【参数列表】栏目 
 * @param delegate 扩展参数,后续用于SDK和app进行一些交互 
 */ 
(void)showDDPage:(UIViewController *)parentController 
    animated:(BOOL)animated 
    params:(DIOpenSDKRegisterOptions *)optionParams 
    delegate:(id<DIOpenSDKDelegate>)delegate;

results matching ""

    No results matching ""