[英]custom URL scheme does not work when app is not running in background
我从safari调用自定义URL来启动应用程序。 如果应用程序在后台运行,它可以正常工作。 但是,当应用程序未在后台运行但已安装在设备上时,应用程序无法启动。 我已经实现了以下两种方法:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
但当应用程序未在后台运行时,它们都不会被调用。
此外,我用Google搜索,发现我们可以在应用未在后台运行时使用以下代码启动应用
if ( [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey] != nil ) {
NSURL *url =(NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];
[self application:application handleOpenURL:url];
}
在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
但不幸的是, didFinishLaunchingWithOptions也没有被触发。 有人有指针吗?
PS:此问题仅在iPad中出现。它在iPhone上运行正常。
我面临同样的问题。
似乎我们的代码运行得太快了。
插入延迟以运行自定义代码将解决此问题。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
[NSTimer scheduledTimerWithTimeInterval:0.5f target:self selector:@selector(yourCustomActions) userInfo:nil repeats:NO];
return YES;
}
希望能帮助到你
得到你的info.plist并进行必要的更改
在其下的第0项中,添加您要使用的自定义网址
在urlTypes - > URL标识符的第0项下添加一行
例如:anubhab://stackoverflow.com/
对于上面的自定义URL,您可以将URL Scheme项目0设置为:anubhab
请参阅附图中的详细信息
我已经按照这些链接 。 希望能帮助到你。 即使我从后台杀了应用程序,它对我也很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.