

Phonegapでcordovaアプリを開発しています。

表題のとおり、iOS 9でajax通信ができません。  
（iOS 10、iOS 11ではajax通信ができました。）

（Appleの非推奨ですが）  
ひとまずajax通信をできるようにするためには、  
*-Info.plistに
[code]

    <key>NSAppTransportSecurity</key> 
    <dict> 
        <key>NSAllowsArbitraryLoads</key><true/>
    </dict>
    
[/code]

が記述されれば良いそうです。  
（もし、この理解が間違っていれば、ご指摘お願いします。）

config.xmlに

[code]

     <access origin="*" />
     <allow-intent href="http://*/*" />
     <allow-intent href="https://*/*" />
     <allow-intent href="tel:*" />
     <allow-intent href="sms:*" />
     <allow-intent href="mailto:*" />
     <allow-intent href="geo:*" />
     <allow-navigation href="*://*youtube.com" />
    
[/code]

を記述したところ

\platforms\ios\myapp\myapp-Info.plist

には

[code]

    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSExceptionDomains</key>
      <dict>
        <key>*youtube.com</key>
        <dict>
          <key>NSExceptionAllowsInsecureHTTPLoads</key>
          <true/>
        </dict>
      </dict>
      <key>NSAllowsArbitraryLoads</key>
      <true/>
    </dict>
    
[/code]

が記載されました。

しかし、それでもiOS 9でajax通信ができません。

どうすればできるようになるのか、  
ご存知の方、ご回答よろしくお願い致します。

また、他にも情報が必要であれば、ご指摘お願い致します。

ちなみにですが、

[code]

    <allow-navigation href="*://*youtube.com" />
    
[/code]

は、今回のアプリでyoutubeを視聴できるようにするため、  
記述する必要があります。

* * *

**バージョン**

[code]

    Phonegap Buiid : 8.0.0
    cordova-iOS : 4.5.4
    
[/code]


CC BY-SA 4.0
2018-07-30T18:45:10.307
47108
2020-08-16T11:03:30.337
2018-07-31T06:42:38.480
19110
26865
question
ios iphone cordova
Phonegapで開発したcordovaアプリにおいて、iOS 9系でajax通信ができない


質問を読み返して気づいた点ですが、  
Ajax通信を行っているドメインはYouTubeですか？  
通信先のドメインも追加した方が良いと思います。  
また、iOS9についてですがそれ以外についても設定を記載しました。  
参考にして下さい。

[code]

    <key>NSAppTransportSecurity</key>
    <dict>
        <!-- WebViewにおける制限(iOS10以上)：trueでATS無効 -->
        <key>NSAllowsArbitraryLoadsInWebContent</key>
        <true/>
        <!-- iTunes(AVFoundationFrameWorks)における制限(iOS10以上)：trueでATS無効 -->
        <key>NSAllowsArbitraryLoadsInMedia</key>
        <true/>
        <!-- ローカルリソースにおける制限(iOS10以上)：trueで読込許可 -->
        <key>NSAllowsLocalNetworking</key>
        <true/>
        <!-- iOS9における制限 -->
        <!-- 指定したドメインに対し例外的に設定したATS項目を無効化する -->
        <key>NSExceptionDomains</key>
        <dict>
            <key>allow.domain.name</key><!-- 例外ドメイン(複数指定可能)：Ajax通信を行うサーバのドメインを追加する -->
            <dict><!-- 直上のドメインに対する設定 -->
                <!-- TrueでHTTP通信を無条件で許可：ほかSSL無し接続・矛盾した証明書を無視 -->
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
        </dict>
        <!-- 前述の"NSExceptionDomains"で設定したドメインに対し全てのATSを無効化 -->
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    
[/code]


CC BY-SA 4.0
2018-08-01T08:06:09.307
47155
2018-08-01T08:06:09.307
47108
answer