调试Android WebView
?
从Android4.4(KitKat)开始,可以使用DevTools对原生Android应用程序的Android WebViews内容进行调试。
?
调试WebViews要求:
?
? ? 1.在Android设备或模拟器运行Android4.4或更高版本,并且Android设备上启用USB调试模式。
? ? 2.Chrome 30或更高版本。更强大的WebView界面调试功能需要Chrome31或更高版本。
? ? 3.Android应用程序中的WebView配置为可调试模式。
?
?
配置WebViews为可调试:
?
在Chrome中启用设置“USB web debugging”不会影响WebViews。在WebView中进行调试,需要通过在应用程序中以编程方式调用WebView类的静态方法setWebContentsDebuggingEnabled。
?
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); }
?
?
注意web调测不受app manifest文件中debuggable标记状态的影响,如果希望仅debuggable为true时才能使用web调测,那么运行时检测此标记。
?
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if ( 0 != ( getApplcationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE ) ) { WebView.setWebContentsDebuggingEnabled(true); } }
?
?
在DevTools中打开 WebView
?
在DevTools调试WebView:
?
? ? 1.使用USB数据线将移动设备连接到开发机器。
? ? 将移动设备连接到开发机器时,可能会看到USB调试警报“设备请求权限”。
? ? 为了避免每次调试时看到此警告,勾选“总是允许从这台计算机”,并单击“确定”。
?
? ? 2.在开发机器的Chrome上,打开检查about:inspect。
?
? ? 3.就能看到应用程序和调试的WebView列表的名称。单击旁边标签中inspect链接,就能在DevTools查看WebView的内容。
?
注:在Chrome 31及更高版本,about:inspect页面提供了一个图形表示WebView的大小和相对设备屏幕的位置。在Chrome 31之前:about:inspect页面仅支持提供的WebView的标题。设置WebViews标题的过程中,选择正确的WebView。
?