1

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

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

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

这在 iOS 和某些版本的 Android 上运行良好,但我在较旧的 Android 版本上遇到了问题。我发现的问题包括带有 touchStart、touchEnd 和 touchHover 事件的 javaScript 没有触发,拇指滑块消失,或者滑块什么也不做,就像它被冻结一样。我做了一些阅读,据我所知,旧版本的 Android 浏览器上的 javaScript 和 CSS 存在问题。

可能的解决方案:

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

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

问题:

  • 首先,有没有比我找到的问题更好的解决方案?

  • 当用户从各自的应用商店安装应用程序时,有没有办法有条件地安装插件/库?我问是因为如果我正在考虑仅使用 Crosswalk(如果它实际上是我最终实施的解决方案)的可能性,则该应用程序安装在运行 4.4 之前的 Android 版本的 Android 设备上。

  • In-App-Browser 使用哪种网络浏览器?系统默认的?

  • 如果我没有在我的应用程序的源代码中包含库或插件并使用 cdn 来托管它,它是缓存到我的应用程序还是每次应用程序启动时都必须获取它。

非常感谢任何建议、建议和/或解决方案。

谢谢你。

4

1 回答 1

1

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

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

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

如果您对库或 css 使用远程资源 url 而不是本地资源 url,则第一次将被下载,但从那里缓存将被命中(除非您故意在 CordovaActivity 中禁用它)。我把它用于谷歌地图,它工作正常。

我宁愿使用另一个小部件来替换基于输入范围的小部件。Bootstrap 或 jQuery 可能会存在一些问题。

于 2016-01-14T14:47:06.403 回答