PhoneGap 构建外部 URL 仅在 iOS 中不加载 cli-5.2.0

Posted

技术标签:

【中文标题】PhoneGap 构建外部 URL 仅在 iOS 中不加载 cli-5.2.0【英文标题】:PhoneGap Build External URL not loading only in iOS for cli-5.2.0 【发布时间】:2015-11-12 16:28:58 【问题描述】:

下面是我的 PhonegapBuild 的 config.xml 副本 出于某种原因,该应用程序在 android 上运行良好,但在 ios 上根本无法运行 没有外部内容加载 当我启用调试时,它不会显示在 WINERE 我已经多次检查我的配置并且不认为我遗漏了任何东西 但显然我是。

我在这里错过了什么?

帮助赞赏

<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns   = "http://www.w3.org/ns/widgets"
    xmlns:gap   = "http://phonegap.com/ns/1.0"
    id          = "com.abcxyz.xxxyyy"
    versionCode = "600001" 
    version     = "6.0.1" >

<!-- 
ANDROID
id          = "com.abcxyz.xxxyyy"

iOS
id          = "com.abcxyz.xxxyyy"


versionCode is optional and Android only 
-->

<name>xxx yyy</name>

<description>
    Track your yyyditioning process using this tool.
</description>

<author href="http://xxxyyy.com" email="support@xxxyyy.com">
    xxxyyy.Com
</author>
<preference name="LoadingPageDialog" value="xxx yyy"/>

<preference name="phonegap-version" value="cli-5.2.0" />


<!-- DEFAULT ICON (ALWAYS ON ROOT DIRECTORY) -->
<icon src="icon.png" />

<icon src="icons/ios/icon.png" gap:platform="ios"   />
<icon src="icons/ios/icon-72.png" gap:platform="ios"   />
<icon src="icons/ios/icon-at-2x.png" gap:platform="ios"   />
<icon src="icons/ios/icon-at-76x76.png" gap:platform="ios"   />
<icon src="icons/ios/icon-at-120x120.png" gap:platform="ios"   />
<icon src="icons/ios/icon-at-152x152.png" gap:platform="ios"   />
<icon src="icons/ios/icon-at-156x156.png" gap:platform="ios"   />
<!-- retina iPad support: PhoneGap 2.5.0+ only -->
<icon src="icons/ios/icon-72-at-2x.png" gap:platform="ios"   />

<icon src="icons/android/ldpi.png" gap:platform="android" gap:density="ldpi" />
<icon src="icons/android/mdpi.png" gap:platform="android" gap:density="mdpi" />
<icon src="icons/android/hdpi.png" gap:platform="android" gap:density="hdpi" />
<icon src="icons/android/xhdpi.png" gap:platform="android" gap:density="xhdpi" />

<icon src="icons/winphone/icon.png" gap:platform="winphone" />
<icon src="icons/winphone/icon-173-tile.png" gap:platform="winphone" gap:role="background" />


<gap:splash gap:density="ldpi" gap:platform="android" src="splash/android/ldpi.png" />
<gap:splash gap:density="mdpi" gap:platform="android" src="splash/android/mdpi.png" />
<gap:splash gap:density="hdpi" gap:platform="android" src="splash/android/hdpi.png" />
<gap:splash gap:density="xhdpi" gap:platform="android" src="splash/android/xhdpi.png" />
<gap:splash gap:platform="ios" src="splash/ios/screen-iphone-portrait.png"   />
<gap:splash gap:platform="ios" src="splash/ios/screen-iphone-portrait-2x.png"   />
<gap:splash gap:platform="ios" src="splash/ios/screen-iphone5.png"   />
<gap:splash gap:platform="ios" src="splash/ios/screen-ipad-portrait.png"   />
<gap:splash gap:platform="ios" src="splash/ios/screen-ipad-landscape.png"   />
<gap:splash gap:platform="ios" src="splash/ios/screen-ipad-retina-portrait.png"   />
<gap:splash gap:platform="ios" src="splash/ios/screen-ipad-retina-landscape.png"   />
<gap:splash gap:platform="winphone" src="icons/winphone/icon.png" />


<preference name="AutoHideSplashScreen" value="true" />
<preference name="SplashScreenDelay" value="0" />

<preference name="orientation" value="portrait" />
<preference name="webviewbounce" value="false"/>
<preference name="prerendered-icon" value="true" />
<preference name="ios-statusbarstyle" value="black-translucent" />
<preference name="fullscreen" value="true" />
<preference name="stay-in-webview" value="true" />


<!--
<icon src="icon.png"/>
<gap:splash src="assets/images/template/startup_landscape.jpg"   gap:platform="ios"/>
<gap:splash src="assets/images/template/startup_portrait.jpg"   gap:platform="ios"/>
-->

<gap:plugin name="org.apache.cordova.dialogs" source="npm" />
<gap:plugin name="org.apache.cordova.vibration" source="npm" />
<gap:plugin name="org.apache.cordova.device" source="npm" />
<gap:plugin name="org.apache.cordova.splashscreen" source="npm" />
<gap:plugin name="org.apache.cordova.network-information" source="npm" />
<gap:plugin name="org.apache.cordova.file-transfer" source="npm" />
<gap:plugin name="org.apache.cordova.camera" source="npm" />
<gap:plugin name="org.apache.cordova.file" source="npm" />
<gap:plugin name="org.apache.cordova.media-capture" source="npm" />
<gap:plugin name="org.apache.cordova.console" source="npm" />
<gap:plugin name="cordova-plugin-whitelist" source="npm" version="1.1.0" />

<gap:plugin name="org.madmobile.cordovaplugins.zbarscanner" source="npm" />

<!--
<gap:plugin name="org.madmobile.cordovaplugins.zbar" />

<gap:plugin name="com.phonegap.plugins.barcodescanner" />
<gap:plugin name="org.apache.cordova.contacts" />
<gap:plugin name="org.apache.cordova.geolocation" />
<gap:plugin name="com.phonegap.plugins.pushplugin" />
-->


<!--
<access origin="crictopia.com" subdomains="true" browserOnly="false" />
<access origin="*" />
<access origin="http://app.xxxyyy.com" subdomains="true" />
<access origin="http://app.abcxyz.com" subdomains="true" />
<access origin="http://google.com" subdomains="true" />
<access origin="https://secure.xxxyyy.com" subdomains="true" />
-->
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />

<allow-navigation href="http://*/*" />

【问题讨论】:

您的config.xml 的底部不见了。您可能没有正确应用whitelist 当您更正此问题时。请回复。 嗨,你解决了吗?如果是,请告诉我。提前致谢。 是的,下面我在元标记中有 Content-Security-Policy 的评论导致了这个问题。 【参考方案1】:

原来问题实际上不是 config.xml

问题在于 index.html 安全设置适用于 android 而不是 iOS

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'" >

只需删除整个标签,生活就很好

【讨论】:

以上是关于PhoneGap 构建外部 URL 仅在 iOS 中不加载 cli-5.2.0的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap:在 Safari 中打开外部 URL

在带有外部 URL 的 iOS 上使用 PhoneGap/Cordova

Phonegap ChildBrowser 通过自定义 iOS url 打开外部 URL

为啥外部链接在构建后在 phonegap 应用程序上不起作用

Phonegap 全屏打开第三方库的外部 URL

PhoneGap 2.5.0,如何打开 iPad/iPhone 的外部 URL?