Android 4.4 CSS 和 Javascript 兼容性上的 Cordova
Posted
技术标签:
【中文标题】Android 4.4 CSS 和 Javascript 兼容性上的 Cordova【英文标题】:Cordova on Android 4.4 CSS and Javascript compatibility 【发布时间】:2018-05-18 02:08:49 【问题描述】:我正在开发一个 cordova 应用程序,在 android 7 和 6 上进行测试,一切正常。 当我尝试在 Android 4.4 设备上安装应用程序时,它会启动,但 CSS 呈现非常糟糕(缺少边框和其他丑陋的东西)并且不支持某些 javascript 函数(例如 Array.forEach)。 我认为是因为 Android 4.4 上的 webview 很旧,但我不知道如何解决这个问题。 我试图安装 Crosswalk,但它什么也没做,它没有出现在 navigator.userAgent 中,所以我认为它不起作用。 我的插件列表中有这个:
cordova-plugin-crosswalk-webview 2.3.0 "Crosswalk WebView Engine"
这在我的 navigator.userAgent 中
"Mozilla/5.0 (Linux; Android 4.4.2; Android SDK built for x86 Build/KK) AppleWebKit/537.36 (Khtml, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36"
【问题讨论】:
您是否尝试记录出现在 WebView 控制台中的警告和错误? 它只是显示 Javascript 错误,因为我使用的新功能不受支持,但我可以找到解决方法。它没有说明 css,但这是最大的问题:/ 您应该确定缺少的功能,然后您需要将必要的 JS polyfill 添加到您的页面。喜欢this one for Array.forEach 我正在修复 javascript 问题,但 CSS 看起来仍然很糟糕。我希望有一些东西可以支持旧 webview 中的新功能,但我找不到任何东西。 CSS 太乱了,我将花费大量时间手动修复所有内容。而且css不是复杂和现代的东西,我不知道为什么不支持它。 cordova-plugin-crosswalk-webview 适用于 Android 4.x 【参考方案1】:我自己解决了这个问题。 Crosswalk 是解决方案,但我无法安装它,因为您需要从 cordova 而不是 Android Studio 构建。 我是从 android studio 构建的,因为 cordova 给了我一个 gradle 版本的错误。 我修复了 cordova 的构建,重新安装了人行横道,现在我可以毫无问题地使用它,它支持所有新功能。
【讨论】:
以上是关于Android 4.4 CSS 和 Javascript 兼容性上的 Cordova的主要内容,如果未能解决你的问题,请参考以下文章
Atitit.eclipse 4.3 4.4 4.5 4.6新特性
DrawerLayout 不适用于 Android 4.4 和 SurfaceView
在 Android 中发送和接收 SMS 和 MMS(Kit Kat Android 4.4 之前)