2017-04-12 31 views
0

Xcodeプロジェクトから、WKWebView loadHTMLStringメソッドで読み込まれたhtml経由でスクリプトファイルを読み込むことはできますか?HTML文字列からスクリプトを読み込むwkwebview

たとえば、ルートディレクトリにscript1.jsとscript2.jsというjavascriptファイルがあるDemoProjectという名前のプロジェクトがあるとします。次に、それらのファイルを参照しようとするHTML文字列をロードします。それは可能ですか?もしそうなら、どうすればそれらのファイルを適切に参照できますか?

+0

をコントローラに追加するユーザースクリプトとして、それをロードするために

enter image description here

private func fetchScript() -> WKUserScript!{ var jsScript = "" if let jsPath = Bundle.main.path(forResource: "hello", ofType: "js", inDirectory: "scripts"){ do { jsScript = try String(contentsOfFile: jsPath, encoding: String.Encoding.utf8) }catch{ print("Error") } } let wkAlertScript = WKUserScript(source: jsScript, injectionTime: .atDocumentEnd, forMainFrameOnly: true) return wkAlertScript } 

を以下の機能を使用して、このようなものです場合。 js "> Adolfo

+0

私はそれを発見していません。 – ImmortalBajan

+0

HTMLファイルとスクリプトは同じターゲットにありますか? – Adolfo

答えて

1

ユーザースクリプトとして注入してみてください。 フォルダ構造は、この<スクリプトSRC = "SCRIPT1を試してみてください

func registerScriptsAndEvents() { 

    let controller = self.wkWebView.configuration.userContentController 
    // Load the entire script to the document 
    controller.addUserScript(fetchScript()) 
} 
+0

私はこれを試して、それが動作するかどうかを知らせます。 – ImmortalBajan

+0

あなたはこのプロジェクトをチェックすることができますhttps://github.com/anoop4real/WKWebViewExperiments多くのことを試しました – anoop4real

+0

@ anoop4real、hello.jsファイルはstart.htmlファイルから呼び出す必要があります。 –

関連する問題