应用未运行时的通用链接
我正在我的应用程序中实现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"
- 覆盖AVMetadataMachineReadableCodeObject的stringValue属性或创build一个替代scheme,输出二进制数据
- 如何从命令行执行iOS应用程序validation
- 停止SKSpriteKit点击冲动
- iOS 7:标签栏控制器的不同导航项目
- ‘substring(from :)’不推荐使用:请使用字符串切片下标和’partial range from’运算符。 Swift 4错误
- iOS中的Model-View-ViewModel模式
- tableView崩溃结束了超过16个项目
- 有条件地编译iOS 7中libxml2的差异
- 如何在保持宽高比的同时调整UIImage的大小