此问题可能是由于没有正确设置WebView导致的。为了解决这个问题,我们可以尝试以下几个步骤:
webView.webChromeClient = object : WebChromeClient() {}
webView.webViewClient = object : WebViewClient() {}
override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) { super.onPageStarted(view, url, favicon) val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) startActivity(intent) }
以上步骤将为您提供和WebView交互并将URL重定向到默认浏览器的完整代码示例:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val webView = findViewById(R.id.webView)
webView.webChromeClient = object : WebChromeClient() {}
webView.webViewClient = object : WebViewClient() {
override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
}
}
val qrCodeScanner = IntentIntegrator(this)
qrCodeScanner.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE)
qrCodeScanner.setPrompt("Scan QR Code")
qrCodeScanner.setCameraId(0)
qrCodeScanner.setBeepEnabled(false)
qrCodeScanner.initiateScan()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
val result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data)
if (result != null) {
if (result.contents == null) {
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show()
} else {
val webView = findViewById(R.id.webView)
webView.loadUrl(result.contents)
}
} else {
super.onActivityResult(requestCode, resultCode, data)
}
}
}