应用未运行时的通用链接

我正在我的应用程序中实现Universal Links。 每个东西都适合我,除非应用程序没有在后台运行。 在这种情况下,我如何在我的应用程序中打开特定页面? iOS启动我的应用程序,但我没有得到任何回调

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler
在这个函数中,我没有得到这行的任何url

NSURL *launchURL = [launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions这个函数。

有没有人知道如何获得启动我的应用程序的url。

谢谢

当您使用应用程序打开通用链接时

  - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options 

如果是这种情况,则使用Universal Link作为参数和选项进行调用。 查看Apple文档了解详细信息。

您可以通过这种方式访问​​您的url…

  NSDictionary *aux = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey]; if (aux) { NSUserActivity *activity = [aux objectForKey:@"UIApplicationLaunchOptionsUserActivityKey"]; NSString *urlString = activity.webpageURL.absoluteString; } 

但为了更好地使用,您必须validation此URL并返回YES,如果您可以管理它

例如 …

 if([urlString hasPrefix:@"https://myUrl.com"]) { return YES; } 

..之后的方法

 - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler 

它会被调用

你需要实施

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ url= yourappurl://with some app link data sourceApplication= //who called your application } 

例如,如果您的应用程序是从facebook messenger调用的,那么您将获得

  sourceApplication=@"com.facebook.messenger"