0

Safari から URL を使用してアプリを起動しようとしています。

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    NSLog(@"Launched with URL");
    return YES;
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSLog(@"Launched normally");
    // Override point for customization after application launch.
    return YES;
}

(また試してみ-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url ました)アプリがバックグラウンドにある場合(つまり、ホームボタンをダブルクリックするとそこにあります)、アプリは正しく起動し、コンソールにLaunched with URL. ただし、ホームボタンをダブルクリックし、アプリを押したままマイナス記号をクリックして完全に閉じると、Safariから再度起動しようとすると、黒い画面が表示され、コンソールに何も記録されません。

これは、デバイスとシミュレーターの両方で発生します (両方とも 5.1) アプリが完全に閉じられたときに呼び出す必要がある別のデリゲートはありますか?

ありがとう!

4

1 に答える 1

1

アプリケーションがSafariから開いている場合、これはURLスキーマが正しく実装されていることを意味します。これらのアプリケーションデリゲートイベントで開かれたUR1を処理する

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:
                                                        (NSString *)sourceApplication
                                                        annotation:(id)annotation
{
}

URLが正しくエンコードされていることを確認してください。URLが壊れている可能性があります。

于 2012-12-07T12:30:07.177 に答える