Gau*_*dia 6 ios firebase firebase-dynamic-links
我使用链接https://firebase.google.com/docs/dynamic-links/ios对firebase集成进行了更改,以下是处理URL并将用户导航到相应屏幕的处理.对于低于9.0的iOS版本,调用appdelegate的openURL方法,我可以获取URL.但是对于iOS版本9.0及更高版本,我在app delegate的ContinueUserActivity方法中调用,并且我获得了dynamicLink.url的nil值.
我无法理解为什么我无法获取Url的原因.
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler {
NSLog(@"Short URl : %@",userActivity.webpageURL);
__weak AppDelegate *weakSelf = self;
BOOL handled = [[FIRDynamicLinks dynamicLinks]
handleUniversalLink:userActivity.webpageURL
completion:^(FIRDynamicLink * _Nullable dynamicLink,
NSError * _Nullable error) {
AppDelegate *strongSelf = weakSelf;
[strongSelf handleReceivedLink:dynamicLink];
}];
return handled;
}
-(void)handleReceivedLink:(FIRDynamicLink*)dynamicLink{
NSString* urlString = [NSString stringWithFormat:@"%@",dynamicLink.url];
NSLog(@"Extended URL : %@",urlString);
}
Run Code Online (Sandbox Code Playgroud)
我遇到过同样的问题。我收到回调,restorationHandler
但在handleUniversalLink
回调动态链接和错误中两者均为零。花了一些时间后我发现了这个问题。我的深层链接对象在两个单词之间包含空格。
例如:
我的网址是这样的:https://domainname.com/card?title=Blue%20Card。起初它不是URLEncoded
来自服务器端。URLEncoded
所以,我在传递给对象之前就完成了Firebase Dynamic Link
。在我的 iOS 代码中,我必须进行以下更改:
NSString *linkURL = [NSString stringWithFormat:@"%@",dynamicLink.url];
linkURL = [linkURL stringByRemovingPercentEncoding];
Run Code Online (Sandbox Code Playgroud)
现在,我的dynamicLink不为零,我的linkURL
字符串给了我深层链接对象。
归档时间: |
|
查看次数: |
907 次 |
最近记录: |