DeepShare iOS 集成
优质
小牛编辑
140浏览
2023-12-01
1. 配置*-info.plist文件
添加用户打开APP的URL Scheme
添加一个叫URL types的键值
- 添加一个叫URL types的键值。
- 点击左边剪头打开列表,可以看到Item 0,一个字典实体。
- 点击Item 0新增一行,从下拉列表中选择URL Schemes,敲击键盘回车键完成插入。
- 更改所插入URL Schemes的值为DeepShare配置中生成的Scheme。
2. 配置universal link
2.1. 配置开发者信息
登录developers.apple.com,点击按钮「Certificate, Identifiers & Profiles」,再点击「Identifiers」。
确保开启「Associated Domains」,这个按钮在页面下方,如图所示:
2.2. 配置Xcode
在Xcode配置中开启「Associated Domains」。
- 选择相应的target;
- 点击「Capabilities tab」;
- 开启Associated Domains;
点击「+」按钮,添加一个Associated Domain,其内容为applinks:zhugeapi.com 完成后,如图所示:
在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);
}
}