

webview内のJavascript以下をSwiftで書いたUIButtonで実行したいのですがお力をお借りできないでしょうか？

Javascript側

function show()  
{  
alert("JavaScript実行"); ←これをSwiftで実行したい  
}

Swift側  
import UIKit  
import JavaScriptCore

class ViewController: UIViewController, UIWebViewDelegate {

[code]

    var webView : UIWebView = UIWebView()
    
[/code]

}

button.addTarget(self, action: "pushBtn:", forControlEvents: .TouchUpInside)

func pushBtn(sender : AnyObject) {

[code]

        //ここでwebviewのfunction show()を呼び出すコードを書きたい
    
        //以下Swiftでのアラートメモ
        let alert = UIAlertView()
        alert.title = "Swift"
        alert.message = "Swiftでのアラート"
        alert.addButtonWithTitle("OK")
        alert.show()
    }
    
[/code]


CC BY-SA 3.0
2016-01-23T14:09:28.437
21234
2016-01-23T14:43:43.690
2016-01-23T14:43:43.690
14117
14117
question
javascript ios swift xcode
Swift(ネイティブ)からWebviewのJavascriptを実行させる方法


webviewは、UIWebViewの方(WKWebViewではなく)でしょうか。そのwebviewの入ったプロパティをどう宣言しているのかも書いてくれていないので、勝手に

[code]

    @IBOutlet var webView: UIWebView!
    
[/code]

のような形でプロパティとして宣言してあるものとしますが、まさにJavaScriptのコードを実行するためのメソッドがUIWevViewに存在します。  
<https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString>:  
呼び出し時点で関数が定義済みであれば、関数を呼び出すこともできるので、このように書くだけですね。

[code]

    webView.stringByEvaluatingJavaScriptFromString("show();")
    
[/code]


CC BY-SA 3.0
2016-01-23T14:19:13.653
21236
2016-01-23T14:19:13.653
13972
21234
answer