h5调用app:
webview.addJavascriptInterface(object : Object() {
@JavascriptInterface
fun setPageTitle(title: String) {
runOnUiThread {
titleTv.text = title
}
}
}, "appSdk")
app调用h5里的方法,把支付结果传给h5:
fun payResult(resultStatus: String) {
val jsMethod = "javascript:window.h5sdk.payResult('$resultStatus')"
runOnUiThread {
seckill_webview.evaluateJavascript(jsMethod, object : ValueCallback<String> {
override fun onReceiveValue(p0: String?) {
// 这里返回JS的结果
}
})
}
}
想要支持不安全的url,使用 handler?.proceed()
webView.webViewClient = object : WebViewClient() {
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
showLoadingDialog()
}
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
dismissDialog()
}
override fun onReceivedSslError(view: WebView?, handler: SslErrorHandler?, error: SslError?) {
if (BuildConfig.DEBUG) {
handler?.proceed()
} else {
super.onReceivedSslError(view, handler, error)
}
}
}