android webview onconsolemessage,Android WebView一些特殊的使用
在Android5.0之前,webView默認(rèn)是允許加載混合網(wǎng)絡(luò)協(xié)議內(nèi)容的;在5.0以上,默認(rèn)不允許加載http和https的混合內(nèi)容
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
webView無(wú)法自動(dòng)播放H5中的視頻,在Android4.2之后,添加了允許用戶(hù)手勢(shì)觸發(fā)音視頻播放的接口,該接口默認(rèn)為true ,即默認(rèn)不允許自動(dòng)播放音視頻,只能是用戶(hù)交互的方式由用戶(hù)自己觸發(fā)播放。這樣做可以保護(hù)用戶(hù)的安全,也涉及到移動(dòng)網(wǎng)絡(luò)的問(wèn)題,用戶(hù)可能不希望在非wifi下自動(dòng)播放。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
//默認(rèn)為true 是否需要用戶(hù)手勢(shì)才能播放視頻
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
}
忽略SSL證書(shū),重寫(xiě)onReceivedSslError()
private class MyWebViewClient extends WebViewClient {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
//handler.cancel();// 默認(rèn)的處理方式,WebView變成空白頁(yè)
handler.proceed();//忽略證書(shū)的錯(cuò)誤繼續(xù)Load頁(yè)面內(nèi)容,不會(huì)顯示空白頁(yè)面
//super.onReceivedSslError(view, handler, error);
}
}
輸出webView控制臺(tái)信息
private class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
Log.e("控制臺(tái)信息", consoleMessage.message() + " -- From line " + consoleMessage.lineNumber() + " of " + consoleMessage.sourceId());
return super.onConsoleMessage(consoleMessage);
}
}
向JS注入對(duì)象時(shí),偶爾會(huì)失敗,建議放在onPageStarted()中
private class MyWebViewClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
//注入對(duì)象
webView.addJavascriptInterface(this, "androidObj");
}
}
和JS交互的Java注入類(lèi)不要混淆,需要keep
-keepclassmembers class com.xxx.xxx.AndroidInterface { *; }
總結(jié)
以上是生活随笔為你收集整理的android webview onconsolemessage,Android WebView一些特殊的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 古汉字注音
- 下一篇: android 7 创建文件夹,Andr