为什么 WebView 打不开网站?
Why WebView does not open a site?
条件:我想创建一个包含 WebView 的对话框来显示一个特殊站点,具体来说 this (https://www.notion.so/Blog-Post-20f83114dc15488eb5684c8c29821a4b
).
代码: 我用 Kotlin 写了这段代码:
MyButton.setOnClickListener{
val myWebVeiw = WebView(this)
myWebVeiw.getSettings().setBuiltInZoomControls(true)
myWebVeiw.getSettings().setDomStorageEnabled(true)
myWebVeiw.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_INSET)
myWebVeiw.settings.setJavaScriptEnabled(true)
myWebVeiw.getSettings().setAllowFileAccess(true)
myWebVeiw.loadUrl("https://www.notion.so/Blog-Post-20f83114dc15488eb5684c8c29821a4b")
myWebVeiw.webViewClient = WebViewClient()
androidx.appcompat.app.AlertDialog.Builder(this)
.setView(myWebVeiw)
.setPositiveButton(applicationContext.getString(R.string.close)){ _, _ -> /*nothing*/ }
.show()
}
并且我在AndroidManifest.xml
中添加了这个权限
<uses-permission android:name="android.permission.INTERNET"/>
问题:当我点击按钮时,我可以看到一个对话框,但它是空的,没有部署。
问题:如何在对话框中打开这个站点?
尝试以下
myWebVeiw.setWebViewClient(object:WebViewClient() {
fun shouldOverrideUrlLoading(view:WebView, url:String):Boolean {
return false
}
})
喜欢
MyButton.setOnClickListener{
val myWebVeiw = WebView(this)
myWebVeiw.getSettings().setBuiltInZoomControls(true)
myWebVeiw.getSettings().setDomStorageEnabled(true)
myWebVeiw.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_INSET)
myWebVeiw.settings.setJavaScriptEnabled(true)
myWebVeiw.getSettings().setAllowFileAccess(true)
myWebVeiw.loadUrl("https://www.notion.so/Blog-Post-20f83114dc15488eb5684c8c29821a4b")
myWebVeiw.webViewClient = WebViewClient()
myWebVeiw.setWebViewClient(object:WebViewClient() {
fun shouldOverrideUrlLoading(view:WebView, url:String):Boolean {
return false
}
})
androidx.appcompat.app.AlertDialog.Builder(this)
.setView(myWebVeiw)
.setPositiveButton(applicationContext.getString(R.string.close)){ _, _ -> /*nothing*/ }
.show()
}
我联系了Notion.so。
他们写信给我:
所以,伙计们,有些站点在 Webview 中可能无法访问。从现在开始我们就会知道了。
条件:我想创建一个包含 WebView 的对话框来显示一个特殊站点,具体来说 this (https://www.notion.so/Blog-Post-20f83114dc15488eb5684c8c29821a4b
).
代码: 我用 Kotlin 写了这段代码:
MyButton.setOnClickListener{
val myWebVeiw = WebView(this)
myWebVeiw.getSettings().setBuiltInZoomControls(true)
myWebVeiw.getSettings().setDomStorageEnabled(true)
myWebVeiw.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_INSET)
myWebVeiw.settings.setJavaScriptEnabled(true)
myWebVeiw.getSettings().setAllowFileAccess(true)
myWebVeiw.loadUrl("https://www.notion.so/Blog-Post-20f83114dc15488eb5684c8c29821a4b")
myWebVeiw.webViewClient = WebViewClient()
androidx.appcompat.app.AlertDialog.Builder(this)
.setView(myWebVeiw)
.setPositiveButton(applicationContext.getString(R.string.close)){ _, _ -> /*nothing*/ }
.show()
}
并且我在AndroidManifest.xml
中添加了这个权限<uses-permission android:name="android.permission.INTERNET"/>
问题:当我点击按钮时,我可以看到一个对话框,但它是空的,没有部署。
问题:如何在对话框中打开这个站点?
尝试以下
myWebVeiw.setWebViewClient(object:WebViewClient() {
fun shouldOverrideUrlLoading(view:WebView, url:String):Boolean {
return false
}
})
喜欢
MyButton.setOnClickListener{
val myWebVeiw = WebView(this)
myWebVeiw.getSettings().setBuiltInZoomControls(true)
myWebVeiw.getSettings().setDomStorageEnabled(true)
myWebVeiw.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_INSET)
myWebVeiw.settings.setJavaScriptEnabled(true)
myWebVeiw.getSettings().setAllowFileAccess(true)
myWebVeiw.loadUrl("https://www.notion.so/Blog-Post-20f83114dc15488eb5684c8c29821a4b")
myWebVeiw.webViewClient = WebViewClient()
myWebVeiw.setWebViewClient(object:WebViewClient() {
fun shouldOverrideUrlLoading(view:WebView, url:String):Boolean {
return false
}
})
androidx.appcompat.app.AlertDialog.Builder(this)
.setView(myWebVeiw)
.setPositiveButton(applicationContext.getString(R.string.close)){ _, _ -> /*nothing*/ }
.show()
}
我联系了Notion.so。 他们写信给我:
所以,伙计们,有些站点在 Webview 中可能无法访问。从现在开始我们就会知道了。