Cordova 可选择在安装或 CDN 上加载 plugin/library - Android & iOS

Cordova optionally load plugin/library on install or CDN - Android & iOS

我将解释我的情况、我找到的可能解决方案,然后是几个问题。

我构建了一个 Cordova 跨平台应用程序,使用 Monaca Cloud IDE 和 Onsen 作为前端。我在我的应用程序中使用了一个滑块,实现如下:

<input type = "range" .../>

这在 iOS 和 Android 的某些版本上工作正常,但我在较旧的 Android 版本上遇到问题。我发现的问题包括 javaScript 与 touchStart、touchEnd 和 touchHover 事件不触发,拇指滑块消失,或者滑块不做任何事情,就像它被冻结一样。我读了一些书,据我所知,javaScript 和 CSS 在旧版本的 Android 浏览器上存在问题。

可能的解决方案:

我研究了两种可能的解决方案(尚未尝试实施其中任何一种),其中一种是 CrossWalk 网络视图插件,另一种是 In-App-Browser 插件。我不知道 In-App-Browser 会使用什么浏览器,但如果它不是系统浏览器,它应该是一个可能的解决方案,无论如何在我看来。我对 Crosswalk 的最大问题是,它会使我的应用程序比没有它时大很多,至少是 4-5 倍以上。给你一个想法,我的应用程序只有大约 4MB。

只是一般性说明,我更喜欢库而不是插件,仅仅是因为它们更容易实现,至少对我而言。

问题:

非常感谢任何意见、建议、and/or 解决方案。

谢谢。

旧 Android 版本(< 4.2)不完全支持该小部件。检查
http://caniuse.com/#feat=input-range

Crosswalk 将解决您的问题,但预计 apk 大小较大(我上次编译的应用程序是 41 MB)。发生这种情况是因为当您使用 XWalk 时,您实际上包含了一个全铬浏览器。虽然核心可以在 apk 之间共享,但对于单个 apk,你会被 40+ MB 卡住。

In-App-Browser 确实使用了标准的 WebView 浏览器引擎。所以你不会从中得到更多(事实上你会得到更少)。

如果您使用远程资源 url 而不是库或 css 的本地资源,第一次将下载它,但从那里会命中缓存(除非你故意在 CordovaActivity 中禁用它)。我将其用于 Google 地图,效果很好。

我宁愿使用另一个小部件来替换基于输入范围的小部件。 Bootstrap 或 jQuery.

可能存在某些内容