WebView loadUrl 将 https 地址转换为意图,导致 ERR_UNKNOWN_URL_SCHEME。我没有使用任何“mailto”、“tel”等。
我在 Compose 中使用 WebView。 在 Android Studio 模拟器中运行。
在我的计算机中使用相同的地址,它可以正常工作。 在模拟器中使用相同的地址无法正常工作。
[http://maps.google.com/maps?z=16&t=h&q=loc:18.2569533+-66.006805&hl=en]
这是错误:
这是我的职责:
@OptIn(ExperimentalComposeUiApi::class)
@SuppressLint("SetJavaScriptEnabled")
@Composable
fun WebViewScreen(location: LatLng){
val url = "http://maps.google.com/maps?z=16&t=h&q=loc:${location.latitude}+${location.longitude}&hl=${Locale.getDefault().language}"
AndroidView(
modifier = Modifier
.pointerInteropFilter {
when (it.action) {
MotionEvent.ACTION_DOWN -> {}
MotionEvent.ACTION_MOVE -> {}
MotionEvent.ACTION_UP -> {}
else -> false
}
true
},
factory = { context ->
WebView(context).apply {
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
settings.javaScriptEnabled = true
webViewClient = WebViewClient()
settings.loadWithOverviewMode = true
settings.useWideViewPort = true
settings.setSupportZoom(true)
loadUrl(url)
}
},
update = { webView ->
webView.loadUrl(url)
}
)
}
问题是由模拟器引起的。我在 SDK 管理器中更新了 Android 模拟器。
您必须重新创建模拟器才能使更新生效,因此请备份坏模拟器上的数据以将其复制到新模拟器。
我找到了另一个解决方案,但对我不起作用。也许无论如何我都必须重新创建模拟器才能使其正常工作。