带有 Phonegap Build 的 Cordova 插件白名单在 iOS 上不起作用
Posted
技术标签:
【中文标题】带有 Phonegap Build 的 Cordova 插件白名单在 iOS 上不起作用【英文标题】:Cordova Plugin Whitelist with Phonegap Build doesn't work on iOS 【发布时间】:2017-01-19 23:05:40 【问题描述】:我在我的 cordova 应用程序中使用了 cordova-plugin-whitelist (v 1.3.1)。 我的 config.xml 中有一条规则
<allow-intent href="tel:*"/>
我的应用中有如下代码:
window.open('tel:2065551212');
如果我在本地构建并部署到应用商店,代码在 android 和 ios 上都可以正常工作。
如果我使用 Adobe 的 Phonegap Build 系统构建,电话:链接仅适用于 android,不适用于 ios。
我尝试了许多不同的设置都无济于事:(
如果有帮助,我正在使用 iOS 10.2。但是,我相信其他版本的 iOS 也会受到类似的影响。
我很想得到帮助!
注意,我的完整 config.xml 文件如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.xxx.yyy" version="5.0.6" android-versionCode="6" ios-CFBundleVersion="5.0.6.6"
xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>XXX</name>
<description>Description...</description>
<author email="info@xxx.com" href="http://www.example.org/">XXX Team</author>
<content src="index.html"/>
<access origin="*" launch-external="yes" />
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*"/>
<allow-intent href="geo:*"/>
<platform name="android">
<allow-intent href="market:*"/>
</platform>
<platform name="ios">
<icon src="resources/ios/icon/icon.png" />
<icon src="resources/ios/icon/icon@2x.png" />
<icon src="resources/ios/icon/icon-40.png" />
<icon src="resources/ios/icon/icon-40@2x.png" />
<icon src="resources/ios/icon/icon-40@3x.png" />
<icon src="resources/ios/icon/icon-50.png" />
<icon src="resources/ios/icon/icon-50@2x.png" />
<icon src="resources/ios/icon/icon-60.png" />
<icon src="resources/ios/icon/icon-60@2x.png" />
<icon src="resources/ios/icon/icon-60@3x.png" />
<icon src="resources/ios/icon/icon-72.png" />
<icon src="resources/ios/icon/icon-72@2x.png" />
<icon src="resources/ios/icon/icon-76.png" />
<icon src="resources/ios/icon/icon-76@2x.png" />
<icon src="resources/ios/icon/icon-83.5@2x.png" />
<icon src="resources/ios/icon/icon-small.png" />
<icon src="resources/ios/icon/icon-small@2x.png" />
<icon src="resources/ios/icon/icon-small@3x.png" />
<splash src="resources/ios/splash/Default-568h@2x~iphone.png" />
<splash src="resources/ios/splash/Default-667h.png" />
<splash src="resources/ios/splash/Default-736h.png" />
<splash src="resources/ios/splash/Default-Landscape-736h.png" />
<splash src="resources/ios/splash/Default-Landscape@2x~ipad.png" />
<splash src="resources/ios/splash/Default-Landscape~ipad.png" />
<splash src="resources/ios/splash/Default-Portrait@2x~ipad.png" />
<splash src="resources/ios/splash/Default-Portrait~ipad.png" />
<splash src="resources/ios/splash/Default@2x~iphone.png" />
<splash src="resources/ios/splash/Default~iphone.png" />
</platform>
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="android-minSdkVersion" value="19"/>
<preference name="BackupWebStorage" value="none"/>
<preference name="SplashScreenDelay" value="0"/>
<preference name="FadeSplashScreen" value="false"/>
<preference name="FadeSplashScreenDuration" value="0"/>
<preference name="SplashScreenBackgroundColor" value="0xFFFFFFFF"/>
<feature name="StatusBar">
<param name="ios-package" onload="true" value="CDVStatusBar"/>
</feature>
<plugin name="cordova-plugin-device" spec="~1.1.3"/>
<plugin name="cordova-plugin-console" spec="~1.0.4"/>
<plugin name="cordova-plugin-whitelist" spec="1.3.1"/>
<plugin name="cordova-plugin-splashscreen" spec="~4.0.0"/>
<plugin name="cordova-plugin-statusbar" spec="~2.2.0"/>
<plugin name="ionic-plugin-keyboard" spec="~2.2.1"/>
<plugin name="cordova-plugin-google-analytics" spec="~1.5.6"/>
<plugin name="cordova-plugin-app-version" spec="~0.1.9" />
<icon src="resources/ios/icon/icon-small@3x.png"/>
</widget>
【问题讨论】:
【参考方案1】:我通过在我的 config.xml 文件中添加以下首选项来完成这项工作:
<preference name="phonegap-version" value="cli-6.4.0" />
这告诉 Phonegap Build 使用 cli-6.4.0 而不是其默认值(截至 2017 年 1 月 19 日为 cli-6.3.0)。
注意:我使用的配置文件格式对于两个版本的 cli 似乎都是正确的。我很想深入了解实际发生的情况。
【讨论】:
以上是关于带有 Phonegap Build 的 Cordova 插件白名单在 iOS 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何开始使用带有 Durandal SPA 应用程序的 Phonegap Build?
iOS - 应用程序图标支持带有不同支持iOS版本的Phonegap Build Project的错误
带有 Phonegap Build 的 Cordova 插件白名单在 iOS 上不起作用
使用 phonegap build 构建 phonegap 应用程序