如何远程调试webview?

9 浏览
0 Comments

如何远程调试webview?

如何对apk中的webview进行调试/检查元素。

我已经尝试过这个方法,但它只对Chrome有用,对于apk无效。

请给我一些建议。

0
0 Comments

问题原因:onCreate方法不存在或者没有正确重写,导致编译错误。

解决方法:

1. 在MainActivity.java中重写onCreate方法,并添加一行代码WebView.setWebContentsDebuggingEnabled(true)。

2. 确保导入了必要的包。

3. 构建代码,将应用程序打开在手机上。

4. 在浏览器中输入chrome://inspect,可以看到应用程序在列表中。

5. 点击inspect链接进行调试。

下面是修改后的代码:

package com.myapp;
import com.facebook.react.ReactActivity;
import android.webkit.WebView;
public class MainActivity extends ReactActivity {
    protected String getMainComponentName() {
        return "myapp";
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WebView.setWebContentsDebuggingEnabled(true);
    }
}

感谢您的回答。在React Native v0.57.3中,不需要导入android.os.Bundle,因为对于onCreate方法不再需要。

我认为onCreate方法不再存在了,我得到了错误信息no suitable method found for onCreate(no arguments)。

0
0 Comments

问题的出现原因:Webview在远程调试时遇到了问题。

解决方法:

1. 在设备中启用开发者选项(设置-->关于手机-->点击7次版本号)

2. 打开开发者选项并启用USB调试(在开发者选项中)

3. 在自定义的Application类或加载Web View的Activity中添加以下代码:

if (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) {
    WebView.setWebContentsDebuggingEnabled(true);
}

4. 在Chrome浏览器中输入`chrome://inspect/#devices`,你应该能看到你的设备在远程目标列表中

5. 点击inspect进行调试

更新:

你可以简化代码,像下面这样:

WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG)

这需要将手机连接到USB吗?如果我在模拟器中测试应用程序怎么办?

DEVIN是的,你需要通过USB连接。如果你想无需USB连接进行调试,请参考我的这个回答:stackoverflow.com/a/44442586/2462531

为什么你编辑了一下?我认为只有一个`&`符号是正确的。

回滚了,我以为还缺一个`&`符号。

更现代的方式是:

WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG)

如何调试实时页面?

0
0 Comments

问题的原因:如果你想要在一个没有源代码的应用中开启WebView调试,你需要对应用进行反编译和重新编译。

解决方法:参考以下链接的指南来进行操作:https://blog.speedfox.co.uk/articles/1524219174-Android_WebView_Hackery

0