Google Maps URL方案无法在iOS 9上运行

NoK*_*NoK 16 google-maps objective-c url-scheme ios ios9

以下URL方案适用于以前的版本,但在iOS 9上不再起作用:

comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan&center=35.660888,139.73073&zoom=15&views=transit
Run Code Online (Sandbox Code Playgroud)

在iOS 9上有什么变化阻止应用程序使用URL方案打开其他应用程序吗?

Jan*_*dhi 30

在iOS 9中,Apple改变了URL方案的处理方式.现在,您需要在plist中添加"LSApplicationQueriesSchemes"键,然后添加要调用的URLScheme.

<key>LSApplicationQueriesSchemes</key>
<array>
 <string>comgooglemaps</string>
</array> 
Run Code Online (Sandbox Code Playgroud)

  • 我添加了此内容但仍然收到错误消息"-canOpenURL:网址失败:"comgooglemaps://" - 错误:"此应用不允许查询方案comgooglemaps"" (3认同)

Mee*_*shi 17

在iOS 9.0中,对canOpenURL方法进行了进一步的限制- 要使此方法起作用,您需要LSApplicationQueriesSchemes在应用程序的info.plist文件中添加一个数组,然后为每个URL scheme要查询的项添加项.这些方案为comgooglemaps,comgooglemaps-x-callback和您自己的应用程序的自定义URL方案.

我在info.plist中添加了以下项目.

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>comgooglemaps</string>
    <string>comgooglemaps-x-callback</string>
</array>
Run Code Online (Sandbox Code Playgroud)

试试这个示例代码OpenInGoogleMaps-iOS.