iOS集成

导入 SDK

手动导入

下载LinkDeep.framework并导入工程中。(导入请选中 "Copy items if needed" )

CocoaPods

pod 'linkdeep-ios'

初始化

工程配置

假设分配的appkeyexzljzgroupkeymvgnaz

scheme配置

Info.plist文件中配置appKey键值对,如下:

<key>CFBundleURLTypes</key>
  <array>
    <dict>
      <key>CFBundleTypeRole</key>
      <string>Editor</string>
      <key>CFBundleURLName</key>
      <string>com.link-deep.appkey</string>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>exzljz</string>
      </array>
    </dict>
    <dict>
      <key>CFBundleTypeRole</key>
      <string>Editor</string>
      <key>CFBundleURLName</key>
      <string>com.link-deep.groupkey</string>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>mvgnaz</string>
      </array>
    </dict>
  </array>

或者

在Xcode里选中 Target -> Info -> URL Types中配置如下图所示:

scheme

在AppDelegate中,增加头文件的引用:

#import <LinkDeep/LinkDeep.h>

在AppDelegate中,继续加入一下初始化以及功能处理方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 初始化方法,注册linkdeep服务
    [[LinkDeepManager sharedInstance] registerService];
    return YES;
}

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    if ([[LinkDeepManager sharedInstance] shouldHandleWithOpenURL:url]) {
        [[LinkDeepManager sharedInstance] handleWithOpenURL:url];
        return YES;
    } else {
        // 处理其他第三方回调
        return YES;
    }
}

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    if ([[LinkDeepManager sharedInstance] shouldContinueUserActivity:userActivity]) {
        [[LinkDeepManager sharedInstance] continueUserActivity:userActivity];
        return YES;
    } else {
        // 处理其他第三方回调
        return YES;
    }
}

openinstall 通过标准的 scheme(iOS<9),universal link(iOS≥9),在 app 已安装的情况下,从各种浏览器拉起 app 并传递动态参数,避免重复安装。

  1. 苹果开发者网站,为当前的 App ID 开启关联域名(Associated Domains)服务。

  2. 创建新的(或更新现有的)描述文件,下载并导入到XCode中。

  3. 在 XCode 里 Target -> capabilities -> Associated Domains 中配置当前应用生成的关联域名(Associated Domains):applinks:ul-exzljz.link-deep.comapplinks:gul-mvgnaz.link-deep.com

    universallink

功能接口调用

唤醒回调处理

[LinkDeepManager sharedInstance].wakeupParametersHandler = ^(NSDictionary * _Nonnull parameters) {
        // 一旦应用linkdeep的推送网页唤醒过来将会调用此block
        // parameters为唤醒参数
};

安装参数获取

[[LinkDeepManager sharedInstance] fetchInstallationParametersWithHandler:^(NSDictionary * _Nonnull parameters) {
    // parameters为安装参数
    // 安装参数不要擅自保存,建议每次需要的时候调用此方法fetchInstallationParametersWithHandler:
    // iOS首次安装、首次启动的app,会询问用户获取网络权限,用户允许后SDK才能正常联网去获取参数。
}];