iOS-app verlaat nooit de kaart

Mijn app is zojuist geüpload in de app store. In mijn app heb ik een knop die richting geeft aan een specifieke locatie vanaf de huidige locatie. In de simulator werkt alles goed, maar op de iPhone wanneer de knop wordt geplakt, wordt de kaart geladen en dus druk je op de iphone-knop om de kaart te verlaten, maar wanneer ik op mijn app tik om hem opnieuw te openen, wordt de kaart opnieuw geladen zelfs na een uur!

in principe blijft het de kaart laden wanneer de app elke keer wordt geladen nadat op de richtingsknop wordt gedrukt.

dus je opent de app en de app opent alleen de kaart!

Ik heb geen idee wat er gebeurt!

hier is de code die ik heb gebruikt,

- (IBAction)directionButton {
[super viewDidLoad];

CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
[locationManager startUpdatingLocation];
}


- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
       fromLocation:(CLLocation *)oldLocation
{
double currentLat = newLocation.coordinate.latitude;
double currentLong = newLocation.coordinate.longitude;

NSString* url = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%f,%f&daddr=%@",
                 currentLat, 
                 currentLong,
                 [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
}
0
Test altijd op echte hardware voordat u een app vrijgeeft aan de app store. De simulator is niet perfect.
toegevoegd de auteur Dancreek, de bron

4 antwoord

  1. Je moet [super viewDidload] niet gebruiken in - (IBAction) directionButton-methode.
  2. Ik denk dat je ergens naartoe roept - (IBAction) directionButton-methode in je viewDidLoad of viewWillAppear of dergelijke methoden. Dus elke keer dat u uw toepassing opent, worden deze methoden aangeroepen en na een tijdje wanneer CLLocationManager gedelegeerde methode aanroept, verwijst uw app door naar de Maps-app.
1
toegevoegd

Uw vraag is niet erg duidelijk, maar vanuit wat ik begrijp, is het gewoon een kwestie van het afwijzen van de weergave met de kaart en terugkeren naar de vorige weergave. Hoe verander je de weergave van de weergave met de knop naar het aanzicht met de kaart?

0
toegevoegd
Dat zou de maps-app op het apparaat moeten openen, wat een volledig aparte applicatie is
toegevoegd de auteur eric.mitchell, de bron
De 'eerste pagina'? Wat is in uw app de start van Google Maps?
toegevoegd de auteur eric.mitchell, de bron
zoals de code laat zien, roep ik de url-link naar de kaart
toegevoegd de auteur Mona, de bron
precies! Ik weet niet waarom het dat doet!
toegevoegd de auteur Mona, de bron
is er hoe dan ook om de app de eerste pagina te laten laden elke keer dat deze wordt geopend?
toegevoegd de auteur Mona, de bron
Ik denk dat ik het snap. Ik ga voorkomen dat de toepassing op de achtergrond wordt uitgevoerd. dit zou het probleem moeten oplossen. Bedankt
toegevoegd de auteur Mona, de bron

Ik heb dit probleem opgelost door te voorkomen dat de app op de achtergrond draait.

dus je zou een nieuwe rij moeten toevoegen aan je info.plist en het "Applicatie draait niet op de achtergrond" moeten maken, moet het vak ervoor worden gecontroleerd.

0
toegevoegd
Dat was mijn gok, maar het is niet duidelijk of het goed is of niet. Als u niet op de achtergrond wordt uitgevoerd, kan ik mijn e-mail niet controleren en vervolgens teruggaan naar de routebeschrijving.
toegevoegd de auteur David Dunham, de bron
laatste oplossing waar ik naartoe zou gaan
toegevoegd de auteur Mona, de bron

De oplossing was vrij eenvoudig. wanneer u klaar bent met het bijwerken van de locatie, belt u de volgende methode,

[manager stopUpdatingLocation];

waar manager uw instantie van CLLocationManager is.

0
toegevoegd