构建 Phonegap 应用未初始化 google 地图

Build Phonegap App is not initializing the google maps

规格:

  1. PhoneGap 桌面应用 v0.4.3
  2. Android v5.1.1

以上代码在桌面应用程序中运行良好,config.xml 是由该 PhoneGap 桌面应用程序创建的。 当我在 build.phonegap.com 上尝试时,Google 地图无法初始化,因此 android 上什么也没有出现,只是白屏。

这是我的 initMap 方法,API 需要它:

var map, directionsService, directionsDisplay;

function initMap() {

    directionsService = new google.maps.DirectionsService;
    directionsDisplay = new google.maps.DirectionsRenderer;

    map = new google.maps.Map(document.getElementById('gMap'), {
        zoom: 10,
        center: { lat: 25.0115052, lng: 66.7845126 },
        mapTypeId: 'roadmap',
    });

    directionsDisplay.setMap(map);


} // initMap() ends

config.xml:

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.phonegap.helloworld"
    version="1.0.0"
    xmlns="http://www.w3.org/ns/widgets"
    xmlns:gap="http://phonegap.com/ns/1.0">

    <name>TestApp</name>
    <description>
        A blank PhoneGap app.
    </description>
    <author email="support@phonegap.com" href="http://phonegap.com">
        PhoneGap Team
    </author>
    <content src="index.html" />
    <access origin="*" />
</widget>

制作原生混合应用需要注意以下几点:

  1. 目标设备(Android、IOS 等)对网络语言(HTML、CSS、JS 等)的版本支持。
  2. 加载所需的插件/库以使用本机组件。


解决方案:

您需要 cordova-plugin-whitelist 插件来访问地图,因此,这将解决您的问题:

<plugin name="cordova-plugin-whitelist" spec="1.3.2" />
<!-- Allow geo: links to open maps -->
<allow-intent href="geo:*" />

根据Cordova Docs

By default, no external URLs are allowed. On Android, this equates to sending an intent of type BROWSEABLE.