2014-09-25

Android4.4のWebViewでshouldOverrideUrlLoadingが呼ばれない

Android4.4(KitKat)から、WebViewでChromeが使われるようになった。これとともに、shouldOverrideUrlLoadingが呼ばれないという問題が起きていた。

原因の1つは、aタグのhref属性に、不正な形式のURIが指定されているというもの。<a href='share-content'> というようになっているとshouldOverrideUrlLoadingが呼ばれない。これはたとえば、<a href='intent:share-content'> というようにしなくてはいけない。

もう1つの原因は、webview.getSettings().setSupportMultipleWindows(true) と指定しており、リンクが target='_blank' となっているもの。target='_blank' をやめるか、webview.getSettings().setSupportMultipleWindows(false) にしなくてはいけない。なお、これはデフォルトでfalseなので明示的に指定しなければ問題ない。

nendの広告を、WebView内に表示していたのだが、これが反応しなくなっていて困った。

0 件のコメント: