iOS 上的 cordova-plugin-crosswalk-webview
cordova-plugin-crosswalk-webview on iOS
我创建了一个 cordova 项目,添加了 2 个平台(android、ios)和一些插件。其中之一是最后一个 cordova-plugin-crosswalk-webview (1.3.1)。我选择了 iOS8 和 android 4.0,就像目标 android 一样。一切正常,我也可以构建 android 平台和 iOS。
在我的 config.xml 文件中,这一行是自动添加的:
...
<preference name="xwalkVersion" value="14+" />
<preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect" />
<preference name="xwalkMode" value="embedded" />
...
对于 android 我肯定会使用人行横道插件。使用 Chrome 检查器,我可以看到 navigator.userAgent 设置为类似于此 image
的人行横道
我的包 android-debug.apk 现在分为 android-debug-armv7.apk 和 android-debug-x86.apk 和apk 大小接近 25Mb。
但是对于 iOS 我无法理解人行横道是否正常工作。在我的 iOS 虚拟机的 Safari 检查器上,navigator.userAgent 变量是:
"Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H141 (140222960683616)"
我如何确定我在 iOS 上运行的是什么浏览器?而且,如果 config.xml 配置不够,我该如何设置 crosswalk-webview fos iOS?
我已阅读quick start guide of crosswalk for iOS but i think that is not so understandable for who use cordova CLI normally. And nothing is written on documentation of cordova-plugin-crosswalk-webview npm package。
更新:
按照科尔多瓦输出:
$ cordova plugin list
cordova-plugin-crosswalk-webview 1.3.1 "Crosswalk WebView Engine"
$ cordova platforms add ios
Adding ios project...
iOS project created with cordova-ios@3.9.2
Running command: /Users/jedi/prj/appMobile/hooks/after_prepare/010_add_platform_class.js /Users/jedi/prj/appMobile
add to body class: platform-ios
Running command: /Users/jedi/prj/appMobile/hooks/after_prepare/030_resource_files.js /Users/jedi/prj/appMobile
...
Installing "cordova-plugin-console" for ios
Installing "cordova-plugin-crosswalk-webview" for ios
Installing "cordova-plugin-device" for ios
..
iOS 上的人行横道使用本机 WKWebView
,它具有 indexedDB 支持,您可以 运行 这个 javascript 代码来检查它是否是 WKWebView
if (window.indexedDB) {
alert('WKWebView');
} else {
alert('UIWebView');
}
cordova 人行横道插件仅为 android 添加人行横道。
注意 iOS 的 crosswalk 需要在应用商店中使用 webkit 应用,因此它本质上使用 WKWebView。 (它使用 webkit 而不是通常的 blink 引擎 chrome 是基于)
查看 Jesse 对我问题的回复:
我创建了一个 cordova 项目,添加了 2 个平台(android、ios)和一些插件。其中之一是最后一个 cordova-plugin-crosswalk-webview (1.3.1)。我选择了 iOS8 和 android 4.0,就像目标 android 一样。一切正常,我也可以构建 android 平台和 iOS。
在我的 config.xml 文件中,这一行是自动添加的:
...
<preference name="xwalkVersion" value="14+" />
<preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect" />
<preference name="xwalkMode" value="embedded" />
...
对于 android 我肯定会使用人行横道插件。使用 Chrome 检查器,我可以看到 navigator.userAgent 设置为类似于此 image
的人行横道我的包 android-debug.apk 现在分为 android-debug-armv7.apk 和 android-debug-x86.apk 和apk 大小接近 25Mb。
但是对于 iOS 我无法理解人行横道是否正常工作。在我的 iOS 虚拟机的 Safari 检查器上,navigator.userAgent 变量是:
"Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H141 (140222960683616)"
我如何确定我在 iOS 上运行的是什么浏览器?而且,如果 config.xml 配置不够,我该如何设置 crosswalk-webview fos iOS?
我已阅读quick start guide of crosswalk for iOS but i think that is not so understandable for who use cordova CLI normally. And nothing is written on documentation of cordova-plugin-crosswalk-webview npm package。
更新:
按照科尔多瓦输出:
$ cordova plugin list
cordova-plugin-crosswalk-webview 1.3.1 "Crosswalk WebView Engine"
$ cordova platforms add ios
Adding ios project...
iOS project created with cordova-ios@3.9.2
Running command: /Users/jedi/prj/appMobile/hooks/after_prepare/010_add_platform_class.js /Users/jedi/prj/appMobile
add to body class: platform-ios
Running command: /Users/jedi/prj/appMobile/hooks/after_prepare/030_resource_files.js /Users/jedi/prj/appMobile
...
Installing "cordova-plugin-console" for ios
Installing "cordova-plugin-crosswalk-webview" for ios
Installing "cordova-plugin-device" for ios
..
iOS 上的人行横道使用本机 WKWebView
,它具有 indexedDB 支持,您可以 运行 这个 javascript 代码来检查它是否是 WKWebView
if (window.indexedDB) {
alert('WKWebView');
} else {
alert('UIWebView');
}
cordova 人行横道插件仅为 android 添加人行横道。
注意 iOS 的 crosswalk 需要在应用商店中使用 webkit 应用,因此它本质上使用 WKWebView。 (它使用 webkit 而不是通常的 blink 引擎 chrome 是基于)
查看 Jesse 对我问题的回复: