Phonegap 5.2.2 android网络错误

时间:2015-09-04 12:50:31

标签: android cordova

我在Android和Iphone上有一个很好的手机应用程序。我已将手机屏幕更新到最新版本5.2.2

当我想构建我的旧应用程序时,我遇到了一些错误,所以我添加了一个新的平台android来实现一个干净的项目。

现在,当我在手机上启动应用程序时,我有一个错误:

  

无法加载资源:服务器响应状态为404(未找到)http://maps.google.com/maps/api/js?sensor=true

我不明白为什么我得到这个,因为我在我的舱单上有互联网许可。我的config.xml

中也有access-origin =“*”

如果有人得到了线索。

感谢您的未来答案。

Manifest.xml:

    <?xml version='1.0' encoding='utf-8'?>
    <manifest android:hardwareAccelerated="true" android:versionCode="10100" android:versionName="1.1.0" android:windowSoftInputMode="adjustPan" package="com.caligeo.xxxxxx" xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:debuggable="true" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:launchMode="singleTop" android:name=".MainActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.plugin.gcm.PushHandlerActivity" />
        <receiver android:name="com.plugin.gcm.CordovaGCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
                <category android:name="com.caligeo.xxxxxx" />
            </intent-filter>
        </receiver>
        <service android:name="com.plugin.gcm.GCMIntentService" />
    </application>
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17" />
    <uses-feature android:name="android.hardware.telephony" android:required="false" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <permission android:name="com.caligeo.xxxxxx.permission.C2D_MESSAGE" android:protectionLevel="signature" />
    <uses-permission android:name="com.caligeo.xxxxxx.permission.C2D_MESSAGE" />
   </manifest>

config.xml:

    <?xml version='1.0' encoding='utf-8'?>
<widget id="com.caligeo.xxxxxx" version="1.1.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
    <name>xxxxxx</name>
    <description>
  xxxxxx mobile
  </description>
    <author email="support@yyyyyy.com" href="http://www.yyyyyy.com">
  yyyyyy
  </author>
    <preference name="phonegap-version" value="3.5.0" />
    <preference name="orientation" value="portrait" />
    <preference name="permissions" value="none" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="webviewbounce" value="false" />
    <feature name="http://api.phonegap.com/1.0/geolocation" />
    <feature name="http://api.phonegap.com/1.0/network" />
    <feature name="http://api.phonegap.com/1.0/notification" />
    <preference name="keepRunning" value="true" />
    <icon src="icon.png" />
    <icon gap:platform="ios" height="57" src="img/icons/ios/logo_appli_57x57.png" width="57" />
    <icon gap:platform="ios" height="72" src="img/icons/ios/logo_appli_72x72.png" width="72" />
    <icon gap:platform="ios" height="114" src="img/icons/ios/logo_appli_114x114.png" width="114" />
    <icon gap:platform="ios" height="76" src="img/icons/ios/logo_appli_76x76.png" width="76" />
    <icon gap:platform="ios" height="120" src="img/icons/ios/logo_appli_120x120.png" width="120" />
    <icon gap:platform="ios" height="152" src="img/icons/ios/logo_appli_152x152.png" width="152" />
    <gap:splash src="splash.png" />
    <gap:splash gap:platform="ios" height="1136" src="img/splash/ios/splash_iphone5.png" width="640" />
    <gap:platform name="ios" />
    <gap:platform name="android" />
    <gap:plugin name="org.apache.cordova.inappbrowser" version="0.2.3" />
    <gap:plugin name="org.apache.cordova.dialogs" version="0.2.2" />
    <gap:plugin name="org.apache.cordova.device-orientation" version="0.3.1" />
    <gap:plugin name="org.apache.cordova.core.geolocation" version="0.3.7" />
    <gap:plugin name="org.apache.cordova.network-information" version="0.2.7" />
    <gap:plugin name="com.phonegap.plugins.pushplugin" version="2.1.1" />
    <gap:plugin name="org.apache.cordova.statusbar" />
    <feature name="StatusBar">
        <param name="ios-package" onload="true" value="CDVStatusBar" />
    </feature>
    <content src="index.html" />
    <gap:config-file parent="CFBundleVersion" platform="ios">
        <string>1.1.0</string>
    </gap:config-file>
    <gap:config-file parent="CFBundleShortVersionString" platform="ios">
        <string>1.1.0</string>
    </gap:config-file>
    <access origin="*" />
    <engine name="android" spec="~4.1.1" />
</widget>

编辑1:

我尝试添加CSP,因此要使用maps.google.com我的脚本,我使用了这个元标记:

<meta http-equiv="Content-Security-Policy" content="script-sr 'unsafe-inline' 'unsafe-eval' 'self' https://maps.google.com">

我收到此错误:

  

拒绝加载脚本   'http://maps.google.com/maps/api/js?sensor=true',因为它违反了   以下内容安全策略指令:“script-src   'unsafe-inline''unsafe-eval''self'https://maps.google.com“。

1 个答案:

答案 0 :(得分:1)

看起来cordova 5.2.2强制使用cordova-plugin-whitelist。

我尝试重新创建cordova项目,重新添加插件,平台等 修改了www / index.html以包含https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy中建议的适当CSP。

现在该应用按预期工作。

或者可以尝试将cordova-plugin-whitelist添加到现有项目中,更新index.html for CSP并再次尝试构建。我没试过。