Cordova谷歌地图出现在较低版本的4.1.2 Android手机中,但最新版Lollipop却没有?为什么?

时间:2016-02-16 07:21:44

标签: android cordova google-maps

应用程序在低版Android手机(在软糖上测试)工作正常。它在较低版本(4.1.2)Android手机上显示谷歌地图。

我调用Google地图API的脚本是

<script src="https://maps.googleapis.com/maps/api/js?key=xxxxx"> </script>

在config.xml中

给出的许可列表

 <access origin="*" />
    <allow-navigation href="*" />
    <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">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>

在清单

下的AndroidManifest.xml中
<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" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <application android:hardwareAccelerated="true" android:icon="@drawable/logo" android:label="@string/app_name" android:supportsRtl="true">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.Black.NoTitleBar" android:windowSoftInputMode="adjustResize">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="22" />

index.js

 map = new google.maps.Map(document.getElementById("mapmake"), myOptions);

HTML元标记

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">

那么为什么它不能用于最新的 Android手机(5.1.1)它显示 BLANK div?

1 个答案:

答案 0 :(得分:0)

所以这些以下更改用于处理我的地图

1 将您的MAP脚本链接更改为以下路径(MAP API v = 3)

<script type='text/javascript' src='https://maps-api-ssl.google.com/maps/api/js?v=3.3&sensor=false'></script>

OR (如果您想嵌入其他库 示例 :(&#39;地点&#39;))< / p>

<script type='text/javascript' src='https://maps-api-ssl.google.com/maps/api/js?v=3.3&sensor=false&libraries=places'></script>

注意 :( 之后脚本链接 jquery.min.js index.js 然后 放置此地图脚本链接

2 某些时候您可能会收到以下错误

[拒绝加载脚本&#39; maps.googleapis.com/maps/api / ...;因为它违反了以下内容安全策略指令:&#34; default-src&#39; self&#39;数据:差距:ssl.gstatic.com&#39; unsafe-eval&#39;&#34;。请注意&#39; script-src&#39;没有明确设置,所以&#39; default-src&#39;被用作后备。]

对于更改元http-equiv =&#34; 内容 - 安全政策&#34;

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

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

休息都是一样的。谢谢。