【发布时间】:2014-12-05 14:22:34
【问题描述】:
我是 Swift/iOS 新手,一直在开发一个从 JavaScript 调用 Swift 代码的应用程序。在线教程并不多,其中很多都是 Swift 仍处于测试阶段时的教程。无论如何,我的代码出现错误,我无法编译它,我想知道是否有人在从 JavaScript 调用 swift 代码时有任何提示和最佳实践。
这是我的代码
import UIKit
import WebKit
class ViewController: UIViewController, WKScriptMessageHandler {
@IBOutlet var containerView : UIView! = nil
var webView: WKWebView?
override func loadView() {
super.loadView()
var contentController = WKUserContentController();
var userScript = WKUserScript(
source: "redHeader()",
injectionTime: WKUserScriptInjectionTime.AtDocumentEnd,
forMainFrameOnly: true
)
contentController.addUserScript(userScript)
contentController.addScriptMessageHandler(
self,
name: "callbackHandler"
)
var config = WKWebViewConfiguration()
config.userContentController = contentController
self.webView = WKWebView(frame: self.view.frame, configuration: config)
self.view = self.webView!
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var url = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("index", ofType: "html")!)
var req = NSURLRequest(URL: url!)
self.webView!.loadRequest(req)
}
func userContentController(userContentController: WKUserContentController!,didReceiveScriptMessage message: WKScriptMessage!) {
if(message.name == "callbackHandler") {
println("JavaScript is sending a message \(message.body)")
} }
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
错误出现在class ViewController: UIViewController, WKScriptMessageHandler { 上,它说
类型“ViewController”不符合协议“WKScriptMessageHandler”。
任何帮助将不胜感激。
【问题讨论】:
标签: javascript ios swift uiviewcontroller