簡體   English   中英

iOS 9 MKTileOverlay無法正常工作

[英]iOS 9 MKTileOverlay not working

我的應用程序在iOS 8上運行良好,但是當我嘗試在Xcode 7上構建它時,地圖未顯示。 我在模擬器和真實設備上嘗試過。

下面是一些代碼。

 - (void)viewDidLoad { [super viewDidLoad]; NSString *url = [[NSUserDefaults standardUserDefaults] stringForKey:@"tileOverlayURL"]; MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:url]; overlay.canReplaceMapContent = YES; [self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels]; } #pragma mark - MKMapViewDelegate - (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id <MKOverlay>)overlay { if ([overlay isKindOfClass:[MKTileOverlay class]]) { return [[MKTileOverlayRenderer alloc] initWithTileOverlay:overlay]; } return nil; } 

我有同樣的問題。 默認情況下,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>

我在自定義疊加層中加載圖塊時遇到了同樣的問題。 我的問題是我使用的是“ http”請求而不是“ https”。 在iOS9上,帶有“ http”的請求被認為是不安全的,並且默認情況下被阻止。 那可能是個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM