在Appium WebdriverIO中调试Ionic 4应用程序不工作:缺少WebView



我正在尝试使用Appium&WebdriverIO。我收到的反馈是,我需要在应用程序中启用Webview才能正常工作。问题是,我在任何地方都找不到关于如何在Ionic中做到这一点的单一参考。

我还尝试在浏览器堆栈中运行我的应用程序,因为同样的原因,它根本不会运行。

Ionic的人能评论一下正确的方法吗?这将适用于Android和iOS平台,基于相同的Ionic代码。

解决方案分为几个步骤。

1-启用Webview

在config.xml文件中,确保设置了以下内容:

<preference name="WKWebViewOnly" value="true" />

这具有设置的效果:

<application
android:debuggable="true"

2-调试生成

除了第1点之外,请注意,对于生产版本构建,我们使用以下命令:

$ionic cordova构建android-产品-发布

然而,Android在幕后做了一些聪明的事情,因为出于安全原因,这个构建只能在本地调试。因此,无论你做什么,当你尝试在Browserstack中运行它时,它都不会提供webview作为上下文。我们通过使用调试构建标志来修复此问题:

$ionic cordova构建android-prod-调试

3-奖励错误

不幸的是,在Android调试构建过程中出现了一个错误。因此,还有一个步骤要做。在进行调试构建时,您必须运行两次ziplign。别问我为什么!你只需要…

Debug > "%ANDROID_HOME%build-tools28.0.3zipalign" -f 4 app-debug.apk temp.apk    // zip-align
Debug > "%ANDROID_HOME%build-tools28.0.3zipalign" -f 4 temp.apk SensorNode.apk   // need to do it twice because of android bug!!!
Debug > "%ANDROID_HOME%build-tools28.0.3apksigner" sign --ks my-release-key.jks --v1-signing-enabled true --v2-signing-enabled true SensorNode.apk

最新更新