[英]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.