簡體   English   中英

當應用程序未后台運行時,URL方案不起作用

[英]URL Scheme doesn't work when app not backgrounded

我正在嘗試使用自定義URL方案啟動我的應用。 如果該應用程序是后台運行,則一切正常。 如果該應用程序沒有后台運行,則會啟動,並且啟動屏幕永遠不會消失,最終它會花很長時間被iOS殺死。 我已對此進行了廣泛調試,無法解決問題。 我什至從我的應用程序didFinishLauinchingWithOptions刪除了所有內容,以確保沒有任何東西在那里停止它。 這是我修改后的代碼,我要問的是它會打開並給我一個空白窗口,但什至不會這樣做。 只是掛在啟動屏幕上。

if ([launchOptions objectForKey:UIApplicationLaunchOptionsURLKey]) {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    [self.window makeKeyAndVisible];

    self.window.rootViewController = [[UIViewController alloc]init];

    return YES;
}

plist中的URL方案:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb23423444322</string>
            <string>test</string>
        </array>
    </dict>
</array>
</plist>

當應用程序響應URL方案時,您將如何處理。 您應該在應用程序委托中使用此委托方法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{   
     // Do what you need here

     return YES;
}

檢查didFinishLaunchingWithOptions的內容。 此方法中的代碼不應被注釋掉。 而且看起來您在didFinishLaunchingWithOptions方法中有條件。 該應用最有可能在啟動時掛起。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM