私はAndroidとKotlin。
誰でもwebView
にURLをロードできますか?
アプリを開いたときにURLを読み込んでWebページを表示するだけです。
1.activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<Android.support.constraint.ConstraintLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
tools:context="com.kotlinwebview.MainActivity">
<WebView
Android:id="@+id/webview"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp" />
2.MainActivity.kt
class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webview)
webView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
view?.loadUrl(url)
return true
}
}
webView.loadUrl("https://www.google.co.in/")
}
}
Android Kotlin Extensionプラグインを使用します。Android Studio 3.0以降を使用している場合は、心配しないでください。既にプロジェクトにインストールされています。
レイアウトでWebViewのIDを使用し、loadUrl()メソッドを呼び出します。
Android WebViewの例-KotlinおよびJava
ここでWebViewのid:webview
webview.loadUrl("https://www.androidride.com")
追加することを忘れないでください
<uses-permission Android:name="Android.permission.INTERNET"/>
サードパーティのブラウザがWebViewにロードされたURLで開いている場合、WebViewClientを提供します。
webview.webViewClient = WebViewClient()
WebViewでYouTubeビデオを再生する場合は、WebViewでJavaScriptを有効にする必要があります。
webview.settings.javaScriptEnabled = true
あなたがAndroidアプリ開発の初心者であれば、このチュートリアルはWebViewについてのあなたの疑問をほぼすべてクリアするのに役立ちます。
これをアクティビティに追加します。
_@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_webview)
val mWebView = findViewById<WebView>(R.id.webview)
val webSettings = mWebView.settings
webSettings.javaScriptEnabled = true
mWebView.loadUrl(getString(R.string.website_url))
mWebView.webViewClient = HelloWebViewClient()
WebView.setWebContentsDebuggingEnabled(false)
}
_
そして、戻るボタンのナビゲーションと外部リンクの送信を許可するために、HelloWebViewClient()
クラスに次を追加します。
_ override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
if (Uri.parse(url).Host == getString(R.string.website_domain)) {
return false
}
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
return true
}
override fun onPageFinished(view: WebView, url: String) {
// TODO Auto-generated method stub
super.onPageFinished(view, url)
}
}
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) {
webview.goBack()
return true
}
return super.onKeyDown(keyCode, event)
}
_
_website_domain
_( https://stackoverflow.com/ )および_website_Host
_(stackoverflow.com)を定義する文字列を追加します。
あなたがしようとしていることを達成するために困難に対処している場合、 この完全なサンプル を試して、指示に従ってください。