簡體   English   中英

谷歌地圖不適用於離子科爾多瓦運行android

[英]Google maps not working with ionic cordova run android

我正在使用離子框架構建應用程序。 該應用程序的主要功能是基於Google地圖。 我已經使用了使用Java腳本Google Maps API的本教程 當我運行ionic實驗室或ionic服務時,一切工作正常,但是當通過運行以下操作使用android模擬器時:ionic cordova運行android Google應當完全空白的地方。 我也沒有收到任何錯誤消息。 此外,我正在使用7.0.1版的cordova和3.5.0版的離子產品。 我已經嘗試過在此問題中列出的解決方案,並且該問題仍在發生。

這是config.xml的相關部分,如其他帖子所建議的那樣

<content src="index.html" />
<access origin="*" />
<access origin="http://maps.google.com" />
<access launch-external="yes" origin="geo:*" />
<allow-navigation href="http://ionic.local/*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
<allow-intent href="http://maps.google.com" />
<preference name="webviewbounce" value="false" />
<preference name="UIWebViewBounce" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="android-minSdkVersion" value="16" />
<preference name="BackupWebStorage" value="none" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="300" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="3000" />
<platform name="android">
    <allow-intent href="market:*" />

另外,這里是index.html,我鏈接到api

<script src="https://maps.google.com/maps/api/js?key=
MY_ACTUAL_API_KEY" type="text/javascript"></script>
<script src="cordova.js"></script>

根據要求,這里是使用google maps html的ts html和css主頁

<ion-header>
<ion-navbar>
<ion-title>
  Smell Louisville
</ion-title>
</ion-navbar>
</ion-header>

<ion-content>

<ion-fab top right><button ion-fab round [color]="refr"id="Refr"     
(click)="refMap();setStuff();pickColor();getLatLng();markerOnLocal()"><ion-
icon name="refresh-circle"></ion-icon></button></ion-fab>

<div #map id="map"></div>
<div id="pad"></div>
<button (click)="openFormPage()" id="hundPer" ion-button outline     
[color]="button1"><div #LeavRev id="LeaVRev"><p id="CenterP">Report how your     
air smells</p></div></button>
<div id="pad"></div>
<button (click)="openPastPage();"id="hundPer" ion-button outline 
[color]="button2"> <div #Prev id="PreV"><p id="CenterP">View maps from 
previous days</p></div></button>
<div id="hundPer">
<button id="hundPer">
<button (click)="openSettingsPage()"><ion-icon id="right"name="settings">    
</ion-icon></button>
<button (click)="openAboutPage()"><ion-icon id="right"name="people"></ion-
icon></button>
<button (click)="openPMPage()" id="pad"><ion-icon id="right">PM2.5</ion-
icon>    
</button>
<button (click)="openCitationPage()" id="pad"><ion-icon id="right" 
name="clipboard"></ion-icon></button>
<button (click)="openHelpPage()" id="pad"><ion-icon id="right" name="help">
</ion-icon></button>
<button (click)="openKeySendPage()" id="pad"><ion-icon id="right" 
name="key"></ion-icon></button>
</button>
</div>

CSS

page-home {
#map{height:75%}


#LeavRev{border:solid
;border-color: green}
#Prev{border:solid
;border-color: royalblue}
#pad{height:1%}
#padL{height:1%; width:10%; float:left}
#padR{height:1%; width:100%; float: right; background-color:#E5E5E5}
#refr{background-color: #6dc066;border:solid;align-content:right;border-                
color: green;color:whitesmoke}

#CenterP{text-align: center}
#hundPer{width:100%}

#right{float:right}
#left{float:left}

}

希望只是相關部分

import { Component, ViewChild } from '@angular/core';
import { NavController, NavParams, Events,AlertController } from 'ionic-
angular';
import { Geolocation } from '@ionic-native/geolocation';
import { FormPage } from '../form/form';
import { PastPage } from '../past/past';
import { AboutPage} from '../about/about';
import { HelpPage} from '../help/help';
import { KeySendPage } from '../key-send/key-send'
import { SettingsPage } from '../settings/settings';
import{ Storage } from '@ionic/storage';
import{Pm2_5Page} from '../pm2-5/pm2-5';
import {CitationPage} from '../citation/citation';
import{SendMarkerProvider } from '../../providers/send-marker/send-
marker';
import {NotificationsPage} from '../notifications/notifications';


import { AngularFireDatabase } from 'angularfire2/database';
//leaving out parts not pertaining to google maps
export class HomePage {
@ViewChild('map') mapElement;
map: any;
constructor(public navCtrl: NavController, public geolocation: Geolocation,         
public navParams: NavParams,
public storage:Storage, public events: Events, public     
sendMarker:SendMarkerProvider, private alertCtrl: AlertController,
private fdb:AngularFireDatabase){
//there is some stuff in the constructor but hopefully it is not relevant I 
//trying to reduce the amount of code you have to read through
 }
 ionViewDidLoad(){
console.log(this.mapInitDid)
this.mapInitDid=false;
this.initMap();
}

//initMap() is supposed to load the map and it doesnt on the android 
//emulator
initMap(){
this.geolocation.getCurrentPosition().then((position) => {
let latLng = new google.maps.LatLng(38.2527, -85.7585)
pos=new google.maps.LatLng(38.2527, -85.7585);
console.log(this.havePerms);
console.log(latLng)

  if(this.havePerms==1){
  latLng = new google.maps.LatLng(position.coords.latitude,         
position.coords.longitude);
  }
  let mapOptions = {
    center: latLng,
    zoom: 10,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }

  this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);

}, (err) => {
  console.log(err);
});

 console.log("map is go");
 this.mapInitDid=true;
// this.markerOnLocal();
}
}

任何幫助將非常感激

事實證明,我實際上是在解決錯誤的問題。 api加載正常,但是設備未在其中運行任何代碼

this.geolocation.getCurrentPosition().then((position) => {
...
});

其中包含了我用於生成地圖的所有代碼。 為了解決此問題,我在本節中將與用戶位置initMap()放入了initMap() ,這是this.geolocation.get...所在的方法

暫無
暫無

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

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