簡體   English   中英

使用 Phonegap 構建時cordova-plugin-whitelist 不起作用

[英]cordova-plugin-whitelist not working when using Phonegap build

我遇到了一個問題,即白名單插件不適用於 Android,這會導致每個 AJAX 調用都返回 404,這會破壞我的應用程序,因為我無法連接到我的后端服務器。 iOS 工作正常,因為它不需要這個插件,如果我檢查http://build.phonegap.com 中的插件列表,它確實出現了,這里會發生什么?

這是我的 config.xml (順便說一下,這個項目使用了 XDK,所以我的 config.xml 是由它構建的:

<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android" android-versionCode="7" ios-CFBundleVersion="7" version="1.0.7" id="com.project.app"  >
<!-- This file was generated by the Intel XDK Cordova Package Build tool. -->
<name>PROJECT NAME</name>
<description>PROJECT DESCRIPTION</description>
<author>COMPANY</author>
<content src="index.html"/>
<preference name="android-build-tool" value="gradle" />
<platform name="android" >
    <allow-intent href="tel:*"/>
    <allow-intent href="geo:*"/>
    <allow-intent href="mailto:*"/>
    <allow-intent href="http://app.project.com/"/>
    <allow-intent href="maps:*"/>
    <allow-intent href="http://maps.google.com/"/>
    <access origin="*"/>
    <access origin="http://app.project.com/"/>
    <access origin="tel:*"/>
</platform>
<platform name="ios" >
    <allow-intent href="tel:*"/>
    <allow-intent href="geo:*"/>
    <allow-intent href="mailto:*"/>
    <allow-intent href="http://app.project.com/"/>
    <allow-intent href="https://www.google.com/maps"/>
    <allow-intent href="https://*.google.*"/>
    <access origin="*"/>
    <access origin="http://app.project.com/"/>
    <access origin="tel:*"/>
</platform>
<preference name="phonegap-version" value="cli-6.5.0" />
<preference name="xwalkMultipleApk" value="false" />
<plugin name="cordova-plugin-device" spec="1.1.6"/>
<plugin name="ionic-plugin-keyboard" spec="2.2.1"/>
<plugin name="phonegap-plugin-push" spec="1.4.3"/>
<plugin name="cordova-plugin-inappbrowser" spec="1.7.1"/>
<plugin name="cordova-plugin-splashscreen" spec="4.0.3"/>
<plugin name="cordova-plugin-statusbar" spec="2.2.3"/>
<plugin name="cordova-plugin-whitelist" spec="https://github.com/apache/cordova-plugin-whitelist"/> <!-- If available via Cordova registry; consider changing to an NPM reference. -->
<platform name="android" >
    <preference name="android-minSdkVersion" value="16"/>
    <preference name="android-targetSdkVersion" value="23"/>
    <preference name="android-installLocation" value="auto"/>
    <preference name="android-signed" value="true"/>
    <preference name="AndroidLaunchMode" value="singleTop"/>
</platform>
<platform name="ios" >
    <preference name="deployment-target" value="9.0"/>
    <preference name="ios-configuration" value="production"/>
</platform>
<splash platform="android" src="package-assets/splashs/ANDROID/320x426.png" density="ldpi" width="320" height="426" orientation="portrait"/>
<splash platform="android" src="package-assets/splashs/ANDROID/320x470.png" density="mdpi" width="320" height="470" orientation="portrait"/>
<splash platform="android" src="package-assets/splashs/ANDROID/480x640.png" density="hdpi" width="480" height="640" orientation="portrait"/>
<splash platform="android" src="package-assets/splashs/ANDROID/720x960.png" density="xhdpi" width="720" height="960" orientation="portrait"/>
<splash platform="ios" src="package-assets/splashs/ios/640x960.png" width="640" height="960" orientation="portrait"/>
<splash platform="ios" src="package-assets/splashs/ios/640x1136.png" width="640" height="1136" orientation="portrait"/>
<splash platform="ios" src="package-assets/splashs/ios/750x1334.png" width="750" height="1334" orientation="portrait"/>
<splash platform="ios" src="package-assets/splashs/ios/768x1024.png" width="768" height="1024" orientation="portrait"/>
<splash platform="ios" src="package-assets/splashs/ios/1242x2208.png" width="1242" height="2208" orientation="portrait"/>
<splash platform="ios" src="package-assets/splashs/ios/1536x2048.png" width="1536" height="2048" orientation="portrait"/>
<splash platform="ios" src="package-assets/splashs/ios/2048x2732.png" width="2048" height="2732" orientation="portrait"/>
<icon platform="android" src="package-assets/iconos/android/project48.png" density="mdpi" width="48" height="48"/>
<icon platform="android" src="package-assets/iconos/android/project72.png" density="hdpi" width="72" height="72"/>
<icon platform="android" src="package-assets/iconos/android/project96.png" density="xhdpi" width="96" height="96"/>
<icon platform="ios" src="package-assets/iconos/ios/project29.png" width="29" height="29"/>
<icon platform="ios" src="package-assets/iconos/ios/project58.png" width="58" height="58"/>
<icon platform="ios" src="package-assets/iconos/ios/project87.png" width="87" height="87"/>
<icon platform="ios" src="package-assets/iconos/ios/project60.png" width="60" height="60"/>
<icon platform="ios" src="package-assets/iconos/ios/project120.png" width="120" height="120"/>
<icon platform="ios" src="package-assets/iconos/ios/project180.png" width="180" height="180"/>
<icon platform="ios" src="package-assets/iconos/ios/project76.png" width="76" height="76"/>
<icon platform="ios" src="package-assets/iconos/ios/project152.png" width="152" height="152"/>
<icon platform="ios" src="package-assets/iconos/ios/project80.png" width="40" height="40"/>
<icon platform="ios" src="package-assets/iconos/ios/project57.png" width="57" height="57"/>
<icon platform="ios" src="package-assets/iconos/ios/project114.png" width="114" height="114"/>
<icon platform="ios" src="package-assets/iconos/ios/project72.png" width="72" height="72"/>
<icon platform="ios" src="package-assets/iconos/ios/project144.png" width="144" height="144"/>
<icon platform="ios" src="package-assets/iconos/ios/project50.png" width="50" height="50"/>
<icon platform="ios" src="package-assets/iconos/ios/project100.png" width="100" height="100"/>
<icon platform="ios" src="package-assets/iconos/ios/project187.png" width="187" height="187"/>
<config-file platform="android" parent="/manifest/application" mode="merge">
    <activity android:launchMode="singleTop" />
</config-file>
</widget>

我建議從一切敞開的開始——刪除所有的allow-intentaccess聲明,只有這個:

<access origin="*" />

並且不要將它放在任何<platform />標簽中。 從那里向后移動,將其限制為僅您想要的域。

此外,我沒有看到任何提及您的內容安全策略 根據文檔,您也應該在 html 文件中進行設置。 再次,從它完全打開開始,我認為它看起來像這樣:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' *" />

在你的 config.xml 你必須添加:

<gap:plugin name="cordova-plugin-whitelist" source="npm" />

或者

<plugin name="cordova-plugin-whitelist" spec="1.3.4" />

也許將此代碼放在 config.xml 中

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM