モバイル Web サイトを読み込むアプリケーションに UIWebView があります。モバイル Web サイトには、さまざまなリンクが多数あります。
これらのリンクの 1 つは、Google マップを使用して地図を読み込もうとします。
最初は、アプリケーションが Web ビュー内にマップを読み込もうとするため、ユーザーがマップ リンクをクリックするという問題がありました。これが何をするかは、webview 内にマップをロードすると、元に戻る方法がないため、ユーザーが立ち往生することです。
戻るための唯一の方法は、アプリケーションを強制的に閉じることであるため、理想的ではありません。
次に、同じ問題を抱えている他の人を見つけ、ここで説明されているように解決策を実装しました。
これはうまく機能し、マップ リンクをクリックすると、マップ アプリケーションが開きます。元のアプリケーションに戻るには、ホーム ボタンをダブルタップして、実行中のアプリケーションのリストから自分のアプリケーションを選択します。
しかし、これは別の問題をもたらしました。アプリケーションを再度選択すると、コンテンツが短時間表示され、次のポップアップが開きます。
そこで選択したものに関係なく、マップが再度読み込まれますが、今回は webview 内で行われるため、前述のように行われたすべての作業が無効になります。
この種の動作を見た人はいますか?もしそうなら、それを回避する方法を知っているので、現在の場所を尋ねるポップアップさえ開かないようにしますか?
更新 コードを追加する;それを処理するために使用しています
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
// URL Starts with "http://maps?"
if([[request.URL description] hasPrefix:@"http://maps"]){
[[UIApplication sharedApplication] openURL:request.URL];
return NO;
}
// otherwise let the webview deal with the request
return YES;
}
前もって感謝します、