【发布时间】:2017-07-31 18:11:48
【问题描述】:
我的 iOS 应用程序(用 Swift 和 React Native 编写)有一个自定义 url 方案,允许我从例如路由到应用程序。像这样的 Safari myappscheme://https://www.mywebsite.com/somematerial。如果我在我的应用程序中启用应用程序传输安全性,通过自定义 url 方案的路由将被阻止并且我收到以下消息:
App Transport Security 已阻止明文 HTTP (http://) 资源 加载,因为它不安全。可以通过以下方式配置临时异常 您应用的 Info.plist 文件。
但是,如果我禁用 ATS,应用程序会按预期路由。我没有在我的应用程序中通过 http 访问任何链接,在我的路由中,我总是通过 https 获取数据。因此,我不知道为什么 ATS 会阻止此路由。你知道我是否需要提供一些关于我的 url 方案的额外信息吗?
请在 Info.plist 中查看我的 ATS 配置:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
我还将自定义 url 方案列入白名单:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>myappscheme</string>
</array>
【问题讨论】:
-
代替'localhost'试试'server.local'
-
@Floler 感谢您的建议,但这不起作用。
标签: ios swift react-native url-scheme