3

错误说明:

在此处输入图像描述

我正在使用谷歌GMSAutocompleteViewController

我在 AppDelegate 中有我的 API 密钥,Swift 3 Xcode 8 的最新 pod,import GoogleMaps 和 import GooglePlacesAPI 位于 vc 的顶部和 appDelegate 中,我的互联网连接很好。

当我在输入地址时使用 Swift 2.2 时,一切正常。现在我时不时升级到 Swift 3 我会在地址上出错,然后出现“无法加载搜索结果”云标题。当我关闭 vc 并重试时,我不断得到相同的标题。我尝试关闭应用程序并重新启动模拟器,但它不会让我访问自动完成服务。我远远低于 2500 次免费每日限制搜索,因为它实际上只有我在测试应用程序。

我还注意到 Google AutoComplete 文档说要使用 GMSPlacesClient.provideAPIKey("...") 但 GMSPlacesClient 方法 provideAPIKey 不可用,所以我只使用 GMSServices.provideAPIKey("..")。我想知道这是问题的一部分。

有谁知道这个问题的解决方法?

应用委托:

import UIKit
import GoogleMaps
import GooglePlacesAPI
import SystemConfiguration

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    override init() {
        super.init()

        //Google Maps API Key
        GMSServices.provideAPIKey("WORKS")

        GMSPlacesClient.provideAPIKey("DOES NOT WORK")
    }

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

我来自googlePlaces的代码:

import UIKit
import GooglePlaces
import GoogleMaps

class ViewController: UIViewController {


  @IBAction func onLaunchClicked(sender: UIButton) {
    let acController = GMSAutocompleteViewController()
    acController.delegate = self
    present(acController, animated: true, completion: nil)
  }
}

extension ViewController: GMSAutocompleteViewControllerDelegate {

  func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) {
    print("Place name: \(place.name)")
    print("Place address: \(place.formattedAddress)")
    print("Place attributions: \(place.attributions)")
    dismiss(animated: true, completion: nil)
  }

  func viewController(_ viewController: GMSAutocompleteViewController, didFailAutocompleteWithError error: Error) {
    print(".....\(error)")
    dismiss(animated: true, completion: nil)
  }

  func wasCancelled(_ viewController: GMSAutocompleteViewController) {
    dismiss(animated: true, completion: nil)
  }
}
4

1 回答 1

4

您应该将GooglePlaces,GooglePlacePickerGoogleMaps放入您的Podfile:

pod 'GooglePlaces'
pod 'GooglePlacePicker'
pod 'GoogleMaps'

并提供您的API_KEY

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    GMSPlacesClient.provideAPIKey("API_KEY_HERE")

    return true
}

在此处输入图像描述

有关更多信息,请遵循本指南:https ://developers.google.com/places/ios-api/start

于 2017-03-28T00:51:28.217 回答