1

カスタム 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>
4

1 に答える 1

1

アプリケーションが URL スキームに応答したときに何が起こるかをどのように処理していますか。App Delegate でこのデリゲート メソッドを使用する必要があります。

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

     return YES;
}

didFinishLaunchingWithOptions の内容を確認してください。このメソッドのコードはコメントアウトしないでください。また、didFinishLaunchingWithOptions メソッドに条件があるようです。これは、アプリが起動時にハングしているときに発生する可能性が最も高いです。

于 2013-08-06T21:40:52.870 に答える