2016-12-19 106 views
3

我嘗試在WKWebView上使用JavaScript加載本地HTML遊戲。儘管我可以看到由CSS設計的HTML頁面,但是我聽不到任何遊戲聲音和某些遊戲的操作不相應。使用WKWebView加載本地HTML/Javascript iOS

我注意到,如果我通過http實時服務器加載完全相同的遊戲,一切看起來都很完美。所以我認爲本地負載出了問題。 也許這個Apache的issue可能是問題?

的Info.plist:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

我的代碼(SWIFT 3)

import UIKit 
import WebKit 

class WebViewController: AppViewController, WKUIDelegate { 

    var webView: WKWebView! 

    override func loadView() { 
     let webConfiguration = WKWebViewConfiguration() 
     webView = WKWebView(frame: .zero, configuration: webConfiguration) 
     webView.uiDelegate = self 
     view = webView 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     if let path = Bundle.main.path(forResource: "index", ofType: "html", inDirectory: "game") { 
      webView.load(URLRequest(url : URL(fileURLWithPath: path))) 
     } 
    } 

} 

回答

3

爲了在當地玩的JavaScript,你必須運行與GCDWebServer一個本地網絡服務器。你可以得到文檔here。 Apple在沒有WebServer的情況下阻止JavaScript執行

+0

謝謝。你知道GCDWebServer如何用JS加載整個本地網站,而不僅僅是一個簡單的HTML文件? – dejix

+0

我想是的,我用它來加載我的項目中的多個HTML文件。所以,你可以做到這一點。 –