如何在 Ionic/Cordova 中禁用 WebView 的远程 android 调试
How to disable remote android debugging of WebView in Ionic/Cordova
我有一个基于 Ionic/Cordova 平台构建的 Android 应用程序。默认情况下,远程 Android 调试已启用。
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
这意味着如果设备连接到计算机,可以打开 Chrome 浏览器,转到 chrome://inspect 查找网页列表,或带有 webview 的应用程序,点击inspect查看appsHTML、JS等资源。这非常适合调试,但我希望在已发布的应用程序中禁用它。
在尝试禁用此功能(或查找启用它的位置)时,我发现有一个功能
@TargetApi(Build.VERSION_CODES.KITKAT)
private void enableRemoteDebugging() {
try {
WebView.setWebContentsDebuggingEnabled(true);
} catch (IllegalArgumentException e) {
LOG.d(TAG, "You have one job! To turn on Remote Web Debugging! YOU HAVE FAILED! ");
e.printStackTrace();
}
}
在 Cordova 目录中 SystemWebViewEngine.java。
是否有可以设置的配置或其他方式来禁用此功能?
当您发布已签名的应用程序时,将禁用调试。您可以通过 运行 应用程序进行检查:
cordova run android --release -- --keystore=../my-release-key.keystore --storePassword=password --alias=alias_name --password=password
或者您可以在 AndroidManifest.xml
的 <application>
中设置 android:debuggable="false"
,并且 运行 应用具有:cordova run android
android webview默认是不可调试的。 Cordova 在应用程序可调试时打开调试,在 AndroidManifest.xml.The 代码中配置如下:
public class SystemWebViewEngine implements CordovaWebViewEngine {
private void initWebViewSettings() {
ApplicationInfo appInfo = webView.getContext().getApplicationContext().getApplicationInfo();
if ((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0 &&
android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
enableRemoteDebugging();
}
}
}
因此 ionic 中的 webview 在调试版本中是可调试的,而在发布版本中是不可调试的。
我有一个基于 Ionic/Cordova 平台构建的 Android 应用程序。默认情况下,远程 Android 调试已启用。
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
这意味着如果设备连接到计算机,可以打开 Chrome 浏览器,转到 chrome://inspect 查找网页列表,或带有 webview 的应用程序,点击inspect查看appsHTML、JS等资源。这非常适合调试,但我希望在已发布的应用程序中禁用它。
在尝试禁用此功能(或查找启用它的位置)时,我发现有一个功能
@TargetApi(Build.VERSION_CODES.KITKAT)
private void enableRemoteDebugging() {
try {
WebView.setWebContentsDebuggingEnabled(true);
} catch (IllegalArgumentException e) {
LOG.d(TAG, "You have one job! To turn on Remote Web Debugging! YOU HAVE FAILED! ");
e.printStackTrace();
}
}
在 Cordova 目录中 SystemWebViewEngine.java。
是否有可以设置的配置或其他方式来禁用此功能?
当您发布已签名的应用程序时,将禁用调试。您可以通过 运行 应用程序进行检查:
cordova run android --release -- --keystore=../my-release-key.keystore --storePassword=password --alias=alias_name --password=password
或者您可以在 AndroidManifest.xml
的 <application>
中设置 android:debuggable="false"
,并且 运行 应用具有:cordova run android
android webview默认是不可调试的。 Cordova 在应用程序可调试时打开调试,在 AndroidManifest.xml.The 代码中配置如下:
public class SystemWebViewEngine implements CordovaWebViewEngine {
private void initWebViewSettings() {
ApplicationInfo appInfo = webView.getContext().getApplicationContext().getApplicationInfo();
if ((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0 &&
android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
enableRemoteDebugging();
}
}
}
因此 ionic 中的 webview 在调试版本中是可调试的,而在发布版本中是不可调试的。