2016-10-17 15 views
2

私は、コードネーム1のAppleのhttp制限に対処しようとしています。コンテンツのみに適用されるオプションのブール値は、以下のクラスのインスタンスに をロードするCN1のNSAllowsArbitraryLoadsInWebContent

のiOSココアキードキュメントによると、NSAllowsArbitraryLoadsInWebContentは、これらの指示に従って、iOS版10上で動作します

WKWebView

のUIWebView(IOSの場合のみ)

WebViewの(唯一のMacOS)

NSURLSession接続のATSのセキュリティに影響を与えずに、 のアプリのウェブビューからATSポリシーを免除するには、このキーの値をYESに設定します。

デフォルト値はNOです。

古いバージョンのiOSとmacOSをサポートするには、このキー を使用し、手動でATSを設定することができます。これを行うには、このキーの値を YESに設定し、NSAllowsArbitraryLoadsサブキーも設定します。

このキーをInfo.plistファイルに追加すると、キーの値 にかかわらず、ATSはNSAllowsArbitraryLoads キーの値を無視します。 iOS 10.0とmacOS 10.12から利用可能です。

私の最初の質問は次のとおりです。

んBrowserComponentはWKWebViewかのUIWebViewを公開しますか?その場合には、問題のココアキーが動作し、私はiOSの10

のために2番目の質問に危険NSAllowsArbitraryLoadsを避けることができます:

:以前のバージョンとの互換性を確保するために

を、私はこれを行う必要があります理解して

  • NSAllowsArbitraryLoadsをtrueに設定します(これは、次の点でiOS 10では無視されます)。

  • NSAllowsArbitraryLoadsInWebContentをtrueに設定します(これはiOS 9では無視され、NSAllowsArbitraryLoadsが使用されます)。

私はそうですか?

おかげ

答えて

4

は、私はあなたが取るしようとしていた手順を理解していないが、あなたがあなたのアプリケーションでHTTP URLを許可しようとしている場合、Codename oneは、あなたがこのビルドヒント

を追加できるようにすることで、それはシンプルに
ios.plistInject=<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict><key>CFBundleURLTypes</key><array><dict><key>CFBundleURLName</key><string>com.mycompany.myapp</string></dict><dict><key>CFBundleURLSchemes</key><array><string>MyApp</string></array></dict></array> 

com.mycompany.myappMyAppに応じて変更してください。10.1ベータ版でテスト

私は現在、私のアプリケーションの一部でこれを使用して、それが正常に動作しますちょうどそのビルドヒントを追加し、HTTP/HTTPSのURLのiOS 9と10

を含むすべてのiOSバージョンでシームレスに動作しますが、 3も同様です。

EDIT:

もう一度あなたの質問を読んだ後、私はあなたの質問に答えられなかったことに気づいた。

BrowserComponentはのUIWebViewを公開していない場合でもはい、キーは動作します。 (個人的なテストに基づいて)

NSAllowsArbitraryLoadsを使用して、上記のようにtrueに設定すると、すべてを処理します。 NSAllowsArbitraryLoadsは、NSAllowsArbitraryLoadsInWebContentを設定すると、iOS 10でのみ無視されます。

+0

ありがとうございますが、Appleの拒否をNSAllowsArbitraryLoadsに設定すると危険ですか? –

+0

いいえ、私はすでにそのキーを持つ3つのアプリを提出し、誰も拒否されていませんでした – Diamond

+0

素晴らしい、ありがとう! –

関連する問題