C#/xaml で Windows ストア アプリを開発しています。
WebView 内のリンクがクリックされたかどうかを確認するにはどうすればよいですか? その afaik のイベントはありません。私はすでにあれこれ調べましたが、適切な解決策を提供してくれません。
例を挙げると、Facebook ページのストリームを iFrame 経由で WebView に埋め込んでいます。その iFrame にある可能性のあるすべてのリンクをブロックしたいと考えています。
独自の Javascript を使用して InvokeScript を呼び出し、ユーザーがページから移動したときのリスナーを設定できます。これは、C# では次のようになります。
var navigationListenerString = @"
(function() {
function leavingPage() {
window.external.notify("LEAVING PAGE");
}
window.onbeforeunload = leavingPage;
})()";
webView.InvokeScript("eval", new string[] { navigationListenerString });
次に、ScriptNotify を使用して特定のメッセージをリッスンし、ページがアンロードされ、ユーザーが離れようとしていることを判断できます。残念ながら、ユーザーがどこに向かっているかを検出することはできません。また、ハイパーリンクが新しいウィンドウで開き、Web ビューがアンロードされない場合も、それを検出できません。