などのカスタム URL スキームを処理する iOS アプリが必要ですmyapp://d1/d2。
URL Typesアプリに を設定しinfo.plist、必要なデリゲート メソッドを実装しました。
-(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
...
}
アプリを実行してから、Safari に切り替えます (したがって、アプリはバックグラウンドで実行されます)。Safari で URL を開きますmyapp://d1/d2。その結果、宣伝どおりにアプリが前面に表示され、上記のメソッドが呼び出されます。問題は、すべてのパラメーター ( application、url、sourceApplicationおよびannotation) が null であることです。
しばらく時間を費やしてnull以外のパラメーターを取得しなかった後、上記のメソッドを減価償却されたメソッドに置き換えようとしましたapplication:handleOpenURL:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
...
}
それはうまくいきました。パラメータは、urlSafari で入力したものとまったく同じです。
明らかに、減価償却された方法を使用したくありません。私は何を間違っていますか?
iOS 6.1.3 を搭載した iPad とシミュレーターで実行。