菜鸟教程小白 发表于 2022-12-13 04:52:04

ios - iOS 上的 Google Places API 自动完成功能


                                            <p><p>在过去的几天里,我一直在努力让 Google Places 自动完成功能在我的应用上运行,无论我做什么,我总是收到 <code>REQUEST_DENIED</code> 错误。</p>

<p>我按照 Google 的“教程”进行实现,Places API 已启用,APIkey 具有正确的捆绑 ID,我还使用浏览器 ID 进行了测试,但没有成功。</p>

<p>不过,我很确定这与 key 有关。奇怪的是,在应用程序的 Android 版本上,该服务将使用浏览器 key 。显然,在浏览器上,它也可以使用该 key 。</p>

<p>这是我尝试过的两个键:</p>

<p> <img src="/image/vGykO.png" alt="Google APIs Console"/> </p>

<p>这是我的实现代码,使用 <code>AFNetworking</code>:</p>

<pre><code>NSURL *url = ;

NSDictionary *params = @{@&#34;input&#34; : ,
                           @&#34;location&#34; : ,
                           @&#34;sensor&#34; : @(true),
//                           @&#34;language&#34; : @&#34;pt_BR&#34;,
//                           @&#34;types&#34; : @&#34;(regions)&#34;,
//                           @&#34;components&#34; : @&#34;components=country:br&#34;,
                           @&#34;key&#34; : GOOGLE_API_KEY};

AFHTTPClient *httpClient = [ initWithBaseURL:url];
;

[httpClient getPath:@&#34;json&#34;
         parameters:params
            success:^(AFHTTPRequestOperation *operation, id responseObject) {

                NSDictionary *JSON = [ dictionaryWithoutNulls];
                if (completion) {
                  completion(JSON[@&#34;predictions&#34;]);
                }

            }
            failure:^(AFHTTPRequestOperation *operation, NSError *errorResponse) {
                NSLog(@&#34;: %@ for URL %@&#34;, , [[ URL] path]);
            }];
</code></pre>

<p>我知道这里有一些类似这样的问题,但有些问题已经过时了,并说 Places API 在 Android 或 iOS 上不起作用,显然情况不再如此,因为 Google 本身在这两个平台上都发布了示例,因为在 Places API 页面上看到:<a href="https://developers.google.com/places/documentation/autocomplete" rel="noreferrer noopener nofollow">https://developers.google.com/places/documentation/autocomplete</a> </p>

<p>我目前使用的一种解决方法是 Apple 的 GeoCoding 系统,它在您输入完整地址时效果很好,但在输入一半的短语时效果很差。这一点都不好,我很想用谷歌的API。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我明白了!</p>

<p>参数 <code>sensor</code> 应该接收 <code>@"true"</code> 或 <code>@"false"</code>,而不是 <code>@(true)</code>或<code>@(false)</code>.</p>

<p>为了记录,使用的 APIkey 确实是浏览器 key ,而不是 iOSkey 。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - iOS 上的 Google Places API 自动完成功能,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/19520177/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/19520177/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - iOS 上的 Google Places API 自动完成功能