微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

应用程序启动时如何处理url?

如何解决应用程序启动时如何处理url?

当应用挂起时如何处理iOS目标c中的深层链接。如果应用程序在后台打开 url 委托将调用,因此可以在那里处理 url。

当应用从具有自定义 url 方案和参数的深层链接启动时,哪个委托方法可以处理 url。

网址类似于 myapp://params?app_id=1234

提前致谢。

解决方法

我在我的项目中实现了 Firebase 动态链接(类似于 Facebook 的延迟链接),以下委托有助于处理通用动态链接:

- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:
#if defined(__IPHONE_12_0) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_12_0)
(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> *_Nullable))restorationHandler {
#else
    (nonnull void (^)(NSArray *_Nullable))restorationHandler {
}

NSUserActivity 对象将包含您正在寻找的“webpageURL”。

此外,您可以查看以下讨论来解决此问题:

Firebase Deeplink not calling application:continueUserActivity:restorationHandler function of AppDelegate in Swift 3

,

我怀疑您的主要逻辑期望调用 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options

我也怀疑在你的情况下,如果应用程序被杀死,它不会被调用。

解决方案很简单 - 确保您同时 - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary<UIApplicationLaunchOptionsKey,id> *)launchOptions 并且它们都返回 YES

这将使 iOS 在应用启动时调用 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。