iOS 开发之如何在项目中接入滴滴打车功能?

2,031 阅读3分钟

前言: 近日,滴滴出行正式上线了“开放平台”,即日起滴滴出行开放平台将对第三方应用、个人开发者全面开放SDK接口。第三方APP接入开放平台后将具备“打车功能”,用户可在第三方APP内直接使用滴滴呼叫出租车、快车、专车和代驾,无需下载安装滴滴出行APP。

看到这里 ,好多小伙伴 都安奈不住了(反正我是安奈不住了), 但是 ,到底使用起来 如何呢?

据悉,在前期试运行期间,滴滴出行开放平台SDK接口已被腾讯地图、微信、支付宝、高德地图、艺龙旅行、大众点评、墨迹天气等30家应用接入。至此,接入滴滴出行SDK和Webapp的应用总数已达300家。

废话了那么多 ,还是直接上手使用吧(づ。◕‿‿◕。)づ

准备工作

下载滴滴的 SDK 和 文档

点我下载

文档附本文末

按照官方的说明,目前 SDK 支持

  • 支持支付宝支付
  • 支持拉起渠道历史订单等页面
  • 支持请求”预估等待接驾时间”、”预估费用”等接口
  • 支持请求”订单详情”、”取消订单”等接口

注册 开发者账户并创建应用

第一步不用说,大家也知道我们需要打开滴滴的开发者中心官网,注册账户之后,我们会看到让我们创建应用

此时我们创建一个新的应用,并等待滴滴官方审核


获取App id 和 Secret

引入工程

将下载好的 SDK 拖入工程

配置工程

注意

滴滴官方文档里面没有写添加Required background modes

添加完之后,然后你的app 如果在前台开启了GPS,切到后台后 依然会持续更新GPS 信息

这一项还有NSLocationAlwaysUsageDescription这一项.

添加到 info.plist 里面的字段

1、NSLocationAlwaysUsageDescription
2、NSLocationWhenInUseUsageDescription
 

这两个字段没什么特别的意思,
就是自定义提示用户授权使用地理定位功能时的提示语。如果不添加,当我们运行滴滴出行SDK的方法就崩溃

同时我们也要把Taeget - Build Settings - enable code 设置为NO

注意 :工程Build Settings里Other Linker Flags需要添加"-ObjC"项,以确保.framework里的类别能加载上

使用 SDK

在AppDelegate里面注册滴滴

#import "AppDelegate.h"
#import 
@interface AppDelegate ()
@end
@implementation AppDelegate

- (BOOL)application:(UIApplication *)application 
    didFinishLaunchingWithOptions:(NSDictionary *)
    launchOptions {
    [DIOpenSDK 
        registerApp:@"从滴滴获取到的appid" 
        secret:@"从滴滴获取到的secret"];
  return YES;
}

在 ViewController 里面实现以下方法

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    UIButton *submitButton =
        [UIButton buttonWithType:UIButtonTypeCustom];// set button type
    submitButton.backgroundColor =[UIColor redColor];// set color
    submitButton.frame =CGRectMake(0, 0, 100, 100);// set fram
    submitButton.center =self.view.center;
    submitButton.layer.cornerRadius = 10;//set corner
    [submitButton setTitle:@"treney 滴滴打车" 
            forState:UIControlStateNormal];// set title
    [submitButton addTarget:self action:
            @selector(buttonAction)
            forControlEvents:UIControlEventTouchUpInside];
    // set target before Touch Up Inside
    [self.view addSubview:submitButton];
}
-(void)buttonAction
{
    DIOpenSDKRegisterOptions *options = nil;
    [ DIOpenSDK showDDPage:self 
            animated:YES 
            params:options delegate:self];
}

愉快的叫车吧

效果图

一些注意事项

  • 滴滴SDK依赖于微信支付,需要拉起微信,所以主工程中的plist中需要添加微信的 scheme
  • framework需要使用定位权限,工程plist中需要添加定位配置,其中定位的提示文案可以自己设置。

官方文档

> 文章来源:SDK.cn专栏,[鹏威](http://blog.treney.com) 撰写,首发于[SDK.cn](https://www.sdk.cn/), 转载请注明出处