ala*_*ita 4 javascript webview reactjs wkwebview
我已经在 React 中构建了一个站点,并且想要使用 iOS WKWebView 中的构建文件。
跟进
为了运行一个 React 构建文件夹,它必须被提供,所以目前实现这一目标的唯一方法是在 iOS 应用程序中构建一个服务器,提供 React 构建文件,并在 WKWebView 中加载本地 url。
我为服务器找到的最佳选择是 https://criollo.io/#getting-started。
为什么是最好的?
小智 6
您不一定需要构建 react 应用程序,然后在本地加载这些文件。它可以工作,但更好的方法是启动您的本地服务器,即yarn start,然后指定您的 url(通常为http://localhost:3000/,可能会根据您的设置而有所不同)以这样加载 WKWebView,
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let configuration = WKWebViewConfiguration()
// (optional) your configuration
webView = WKWebView(frame: .zero, configuration:configuration)
view = webView
let url = URL(string: "http://localhost:3000")!
let request = URLRequest(url: url)
webView.load(request)
}
Run Code Online (Sandbox Code Playgroud)
由于您的服务器通过 加载文件http,iOS 的App Transport Security会阻止它。它只允许通过https协议加载文件。为了让ATS负载通过http你需要添加例外localhost或127.0.0.1或其他任何地方IPADDR你的服务器上运行。为此,请作为源代码打开info.plist并粘贴以下内容,
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>127.0.0.1</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
现在您应该能够在 WKWebView 中访问您的 React 应用程序。
| 归档时间: |
|
| 查看次数: |
2962 次 |
| 最近记录: |