#まずは全体のコードはこんなかんじです。
MainActivity.kt
package com.sample.android.webview
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.KeyEvent
import android.view.WindowManager
import android.webkit.WebView
import android.webkit.WebViewClient
import com.sample.android.webview.R
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val myWebView: WebView = findViewById(R.id.webview)
// ポイント1,JavaScriptを有効化
myWebView.getSettings().setJavaScriptEnabled(true);
// Web Storage を有効化
myWebView.getSettings().setDomStorageEnabled(true);
// HTML5 Video support のため
// Hardware acceleration on
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED
);
// ポイント2,ページナビゲーションの処理
myWebView.webViewClient = WebViewClient()
myWebView.loadUrl("https://yahoo.co.jp")
}
// ポイント3, ウェブページ履歴を操作する
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
val myWebView: WebView = findViewById(R.id.webview)
if (keyCode == KeyEvent.KEYCODE_BACK && myWebView.canGoBack()) {
myWebView.goBack()
return true
}
return super.onKeyDown(keyCode, event)
}
}
##ポイント1、JavaScriptを有効にする
myWebView.getSettings().setJavaScriptEnabled(true);
##ポイント2、ページ ナビゲーションの処理
リンクを開いたときにブラウザが開かないようにします。
myWebView.webViewClient = WebViewClient()
##ポイント、3ウェブページ履歴を操作する
WebView が URL の読み込みをオーバーライドすると、アクセスしたウェブページの履歴が自動的に蓄積されます。履歴を前後に移動するには、goBack() および goForward() を使用します。
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
// Check if the key event was the Back button and if there's history
if (keyCode == KeyEvent.KEYCODE_BACK && myWebView.canGoBack()) {
myWebView.goBack()
return true
}
// If it wasn't the Back key or there's no web page history, bubble up to the default
// system behavior (probably exit the activity)
return super.onKeyDown(keyCode, event)
}
以上です。
参考にさせて頂いたサイト
https://developer.android.com/guide/webapps/webview?hl=ja