

STAFF BLOG
AndroidアプリのWebViewで、JavaScriptを実行する方法

Androidアプリ側の対策
WebViewでJavaScriptを実行できるようにするためには、WebViewのWebSettingsオブジェクトのsetJavaScriptEnabledメソッドの引数にtrueを与えて呼び出すと変更できます。MainActivity.java
class MainActivity : AppCompatActivity() {
private var bindingBroadcastReceiver: WakefulBroadcastReceiver? = null
private val TAG = "MainActivity"
private val BASE_URL = "https://○○○○○○○○/"
private val BAD_URL = "https://○○○○○○○○/"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(TAG, "onCreate")
setContentView(R.layout.activity_main)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.hide()
val preferences_data = getSharedPreferences("DataSave", Context.MODE_PRIVATE)
val preferences_editor = preferences_data.edit()
fullscreen_web.webViewClient = WebViewClient()
fullscreen_web.getSettings().setJavaScriptEnabled(true);
val versionName : String = BuildConfig.VERSION_NAME
val userAgent : String = fullscreen_web.settings.userAgentString
fullscreen_web.settings.userAgentString = userAgent + " InteriorApp(version:" + versionName + " build:0)"
fullscreen_web.setWebViewClient(object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
Log.d(TAG, "URL : $url")
if( BAD_URL == url || BAD_URL+"index.html" == url ){
fullscreen_web.loadUrl(BASE_URL)
return true
}else{
if (url.endsWith(".pdf")) {
// Load "url" in google docs
val googleDocs = "https://docs.google.com/viewer?url="
view.loadUrl(googleDocs + url)
}
}
return false
}
})
解説
fullscreen_web.getSettings().setJavaScriptEnabled(true);
こちらのコードで、JavbaScriptの実行を許可しています。それでも一部動かないJavaScriptがありました。
上記を追記しても、一部動かないJavaScriptがありました。何故か色々調べたり検証したりした結果、 HTMLにscriptタグで直接JavaScriptを書くと動かないっぽく、該当のJavaScriptをjsファイル内に記載したところ、 正常に動くようになりました。
CATEGORY
関連記事
2021.01.10 動画制作
After Effectsでアニメーションをループさせる
2021.01.10 動画制作
Premiere Proでぼかしをトラッキングする
2021.01.10 動画制作
Premiere Proで作成した映像をMedia Encoderで書き出すとLUTが反映されていない時の解決方法
2021.01.10 動画制作
Premiere Proでモーションブラーをかける
2021.01.10 動画制作
Premiere ProにLUTを追加する
2020.11.25 PHPプログラム
Instagram Graph APIを使ってインスタグラムの投稿画像をWebサイトに埋め込む方法1