【问题标题】:Cordova optionally load plugin/library on install or CDN - Android & iOSCordova 可选择在安装或 CDN 时加载插件/库 - Android 和 iOS
【发布时间】:2016-01-14 14:01:19
【问题描述】:

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

我构建了一个 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(如果它实际上是我最终实施的解决方案)的可能性,则应用程序安装在运行 Android 4.4 之前版本的 Android 设备上。

  • 应用内浏览器使用哪种网络浏览器?系统默认的?

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

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

谢谢。

【问题讨论】:

    标签: android ios cordova plugins monaca


    【解决方案1】:

    较早的 Android 版本 (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 可能会存在一些东西。

    【讨论】:

    • 有没有办法检测设备上运行的是哪个版本的 Android?我只想在用户使用不支持它的 Android 版本时使用替代小部件,而不是全面替换本机输入范围。
    • 是的,你可以嗅探浏览器的用户代理,或者在 Cordova 中使用device.platform
    猜你喜欢
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 2020-06-22
    • 2018-12-04
    • 2018-08-31
    • 2015-01-31
    相关资源
    最近更新 更多