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