【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない

現象

タイトルには Android 5系 と書きましたが、正確には Android System WebView が M40 に更新されている場合
webview で表示しているコンテンツの alert() や confirm() を叩くと

Cannot create a dialog, the WebView context is not an Activity

とWarningがログに出てダイアログが表示できない現象です。

原因

Android 5 からOSのアップデートとは別に Android System WebView というアプリで提供され、WebView 単体でのアップデートができるようになったのですが、これの M40(2015/03/12 ~ 31更新) に問題があるようです。

https://plus.google.com/104420146897771890981/posts/3tgs9NV3irdのコメントから抜粋

M40 does not seem to include this patch filed here https://code.google.com/p/chromium/issues/detail?id=447607
So javascript alert does not work in webview.

Unfortunately that change did not make it into M40 as it was submitted too late and it was not cherrypicked as it’s not a regression from M37/M39. It will be in the next version.

ちなみに Android System WebView の正式リリース版は
Android L preview時: M36
Android 5.0 正式リリース時: M37
2015/03/12 から順次: M40

Beta版の最新は M42 となっています。

対策

上記のコメントなどを読んでみると、次のversionでは直りそうなものの、現状 M40 に上げてしまった人はアプリ側で onJsAlert() や onJsConfirm を override して自前で Native のダイアログを表示してあげるしかなさそうです。

参考

http://stackoverflow.com/questions/26044179/showing-an-alertdialog-from-a-webview-outside-of-an-activity

alert()とかconfirm()が効かないのはかなり致命的ですし、アプリの自動更新を有効にしている場合、Android System WebView が勝手に更新されてしまうのでさっさと直してもらいたいですね。

それともこれは必ず override しておくべきというメッセージなのか。

—-
2015.04.15 追記

https://plus.google.com/116875446861295488830/posts/5KVQv2q5StS から抜粋

This is a bug in the M40 WebView, sorry. It’s already fixed in the M42 beta. The bug is https://code.google.com/p/chromium/issues/detail?id=447607

というわけで Android System WebView M42 beta で修正済みらしいです。
publish されれば解決しますね。

Beta版のインストール方法をまとめました
Android System WebView Beta版のインストール方法

—-
2015.04.24 追記
Android System WebView M42(42.0.2311.129)がpublicになりましたね!
今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。
http://googlechromereleases.blogspot.co.uk/2015/04/android-webview-stable-update.html

スポンサーリンク
スポンサーリンク

『【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない』へのコメント

  1. […] alert()とかconfirm()が効かないのはかなり致命的ですし、アプリの自動更新を有効にしている場合、Android System WebView が勝手に更新されてしまうのでさっさと直してもらいたいですね。 Android 5 からOSのアップデートとは別に Android System WebView というアプリで提供され、WebView 単体でのアップデートができるようになったのですが、これの M40(2015/03/12 ~ 31更新) に問題があるようです。 上記のコメントなどを読んでみると、次のversionでは直りそうなものの、現状 M40 に上げてしまった人はアプリ側で onJsAlert() や onJsConfirm を override して自前で Native のダイアログを表示してあげるしかなさそうです。 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 [紹介元] 【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない […]

  2. […] —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 Android 5 からOSのアップデートとは別に Android System WebView というアプリで提供され、WebView 単体でのアップデートができるようになったのですが、これの M40(2015/03/12 ~ 31更新) に問題があるようです。 上記のコメントなどを読んでみると、次のversionでは直りそうなものの、現状 M40 に上げてしまった人はアプリ側で onJsAlert() や onJsConfirm を override して自前で Native のダイアログを表示してあげるしかなさそうです。 [紹介元] 【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない […]

  3. […] 2015年8月1日 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 [紹介元] 【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない […][…] —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 [引用元] 【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない […]

  4. […] —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 [紹介元] 【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない […][…] —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 [引用元] 【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない […]

  5. […] 2015年8月11日 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 [紹介元] 【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない […][…] —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 [引用元] 【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない […]

  6. […] —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 [紹介元] 【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない […][…] —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 —- 2015.04.24 追記 Android System WebView M42(42.0.2311.129)がpublicになりましたね! 今まで「http:xxxxx: のページ」とアラートのタイトルが表示されていたのが、表示されなくなくなりましたが一応一安心。 [引用元] 【4/24追記】Android 5.x WebView で Java Script の alert() や confirm() がでない […]

コメントをどうぞ

メールアドレスが公開されることはありません。