私は、埋め込まれたビデオ(私はこのHTMLへのアクセス権がありません)を使って外部HTMLを読み込むオブジェクト-cでUIWebViewを持っています。この動画にはGoogle広告のプレロール広告が含まれています(ただし、今後別のプロバイダからのものも可能です)。 この広告には、ユーザーがクリックできる外部ウェブサイトへのリンクがありますが、JavaScriptのイベント(通常のアンカーではありません)によってトリガーされているようです。UIWebView - サファリでの強制ナビゲーション
Safariでクリックしたリンクを強制的に開くためにデリゲートを設定しましたが、広告からのリンクはwebview内で開いたままになります。私はそれがjavascriptからトリガーされているからだと思う。
これは私のデリゲートです:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:
(NSURLRequest *)request navigationType:
(UIWebViewNavigationType)navigationType
{
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}
return YES;
}
は、誰もがSafariで開くためのWebViewにロードされたドメイン外のいずれかのナビゲーションを強制する方法を知っているでしょうか?私はこのように私はこの問題を回避することができると思います。
ありがとうございました。
は、私はまた、こののにと思ったが、WebViewの中にロードされたURLは、API呼び出しによってアプリケーションに提供され、およびすることができますいつも違う。それが異なっているかどうかを知るためにクリックリクエストの瞬間にアプリにロードされている実際のドメインを知る方法はありますか? – fana
APIから受け取った初期URLをプロパティとして保存し、そのホスト(NSURL-hostメソッド)を[request URL]のものと比較できますか? –
私はできると思いますが、ロードされたWebviewの数は不明です。 1つのURLを返すAPIを呼び出すと、webview、または複数のURLに読み込まれる可能性があります。可能なすべての異なるURL ... – fana