iOS 9 MKTileOverlay无法正常工作

时间:2015-08-09 06:33:46

标签: ios objective-c mapkit mkoverlay

我的应用程序在iOS 8上运行正常,但是当我尝试在Xcode 7上构建它时,地图没有显示。我在模拟器和真实设备上试过它。

下面是一些代码。

<script> 
  var canvas, stage, exportRoot;
    function init() {
  }
</script>

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。默认情况下,IOS 9不允许连接到非安全URL。我使用的地图服务器是非安全的,因此IOS 9阻止了我的代码在MkTileOverlay中调用的NSURLRequest与地图服务器交谈。

您可以告诉IOS 9允许访问这些非安全服务器。您必须将NSAppTransportSecurity部分添加到IOS项目的info.plist中 文件并为您与之交谈的每个非安全地图服务器指定NSExceptionDomain。这是一个示例,显示了我使用的2个地图服务器。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>nationalmap.gov</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
        <key>opencyclemap.org</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>

答案 1 :(得分:0)

我在自定义叠加层中加载图块时遇到了同样的问题。我的问题是我正在使用&#34; http&#34;请求代替&#34; https&#34;。使用&#34; http&#34;的请求在iOS9上被认为是不安全的,默认情况下被阻止。这可能是一个问题。