首页 文章

如何限制Google商家信息自动填充功能不包含地址?

提问于
浏览
1

如何限制Google商家信息自动填充功能不包含地址?我目前有我的设置

class FilterVC: UIViewController, GMSAutocompleteViewControllerDelegate {

// MARK: SEARCH BAR

@IBAction func searchBarAction(_ sender: Any) {
    let autocompleteController = GMSAutocompleteViewController()
    autocompleteController.delegate = self
    placeAutocomplete(resultsViewController: autocompleteController)
    UINavigationBar.appearance().barTintColor = UIColor.white
    UINavigationBar.appearance().tintColor = UIColor.hiGreyishBrownTwo
    UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).defaultTextAttributes = [NSAttributedStringKey.foregroundColor.rawValue: UIColor.hiGreyishBrownTwo]
    present(autocompleteController, animated: true, completion: nil)
}
func placeAutocomplete(resultsViewController: GMSAutocompleteViewController) {
    var placeClient = GMSPlacesClient()
    let filter = GMSAutocompleteFilter()
    filter.type = .city
    filter.country = "USA"
    resultsViewController.autocompleteFilter = filter

    func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) {
        DataService.instance.place = place
        FillAddress(place: place)
        fillAddressForm()

        print(DataService.instance._address_line1)
         print(DataService.instance._city)
         print(DataService.instance._postalCode)
         print(DataService.instance._state)
         print(DataService.instance._country)
        DataService.instance.addressLabel = place.formattedAddress
        dismiss(animated: true, completion: nil)
}

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

我尝试使用GMSAutocompleteFilter将结果限制为仅包含州城市,邮政编码,国家/地区 . 我不想在自动完成控制器中显示地址 . 当我这样做时,它只显示国家和城市,我无法输入邮政编码 . 我该如何提供?我不太确定我错过了什么,或者下一步要做的是什么 . 任何建议将不胜感激 .

1 回答

  • 2

    自从我找到解决方案之后,我打算将其关闭,但是为了防止某个问题遇到类似问题,一个非常简单的解决方法是将过滤器类型设置为区域 .

    func placeAutocomplete(resultsViewController: GMSAutocompleteViewController) {
        var placeClient = GMSPlacesClient()
        let filter = GMSAutocompleteFilter()
        filter.country = "USA"
        filter.type = .region
    
        resultsViewController.autocompleteFilter = filter
    

    这将限制搜索不包括地址 . 在尝试.city时,那就消除了很多 . 希望这能帮助将来的某个人 .

相关问题