DeepShare iOS 集成

优质
小牛编辑
127浏览
2023-12-01

1. 配置*-info.plist文件

添加用户打开APP的URL Scheme

添加一个叫URL types的键值

  1. 添加一个叫URL types的键值。
  2. 点击左边剪头打开列表,可以看到Item 0,一个字典实体。
  3. 点击Item 0新增一行,从下拉列表中选择URL Schemes,敲击键盘回车键完成插入。
  4. 更改所插入URL Schemes的值为DeepShare配置中生成的Scheme。

2. 配置universal link

2.1. 配置开发者信息

  1. 登录developers.apple.com,点击按钮「Certificate, Identifiers & Profiles」,再点击「Identifiers」。

    image

  2. 确保开启「Associated Domains」,这个按钮在页面下方,如图所示:

    image

2.2. 配置Xcode

  1. 在Xcode配置中开启「Associated Domains」。

    • 选择相应的target;
    • 点击「Capabilities tab」;
    • 开启Associated Domains;
    • 点击「+」按钮,添加一个Associated Domain,其内容为applinks:zhugeapi.com 完成后,如图所示:

      image

  2. 在Xcode中添加依赖库。

    • 选择相应的target;
    • 选择Build Phrases;
    • 在Link Binary With Libraries中添加SafariServices.framework。

2.3. 添加以下代码到AppDelegate

// Availability : iOS (9.0 and later)
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler 
{
    //此处添加以下代码
    BOOL handledByDeepShare = [Zhuge continueUserActivity:userActivity];
    return handledByDeepShare;
}

2.4. 添加调用代码

添加处理代码。

// Availability : iOS (9.0 and later)
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options 
{
    //此处添加以下代码
    if([Zhuge handleURL:url]){
        return YES;
    }
    return NO;
}

如果是iOS8和以下版本,请用以下代码:

// Availability : iOS (4.2 to 8.4)
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation {
    //此处添加以下代码
    if([Zhuge handleURL:url]){
        return YES;
    }
    return NO;
}

2.5. 获取场景还原参数

为实现场景还原功能,在AppDelegate的didFinishLaunchingWithOptions方法中添加[zhuge startWithAppKey… …]的调用,并通过Delegate接受返回的启动参数。 LaunchOptions是用来判断App是否是通过URL Scheme进行唤起的。

示例代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

    Zhuge *zhuge = [Zhuge sharedInstance];
    [zhuge startWithAppKey:@"此处填写您生成的应用appKey" launchOptions:launchOptions withDelegate:self];
    return YES;

}
- (void)zgOnInappDataReturned:(NSDictionary *)params withError:(NSError *)error 
{
    if (!error) 
    {
        NSLog(@"finished init with params = %@", [params description]);
        NSString *cmdName = [params objectForKey:@"name"];
        goToLinuxCmd(cmdName); //调用应用自己的接口跳转到分享时页面
    } else {
        NSLog(@"init error id: %ld %@",error.code, errorString);
    }
}