Swift webview: 如何调用代码 swift 的 javascript?
我正在努力制造我的 javascript 与代码互动 swift, 但是,不幸的是,我不能。
目前我刚刚尝试更改标题的颜色并显示一条消息,如下代码所示。
这是我的代码 /
index.html
/ :
这是我的代码 /
main.js -JavaScript
/ :
这是我的代码 /
ViewController.swift
/ :
目前我刚刚尝试更改标题的颜色并显示一条消息,如下代码所示。
这是我的代码 /
index.html
/ :
html
<html>
<head>
<title>Test</title>
<meta charset="utf-8"/>
</head>
<body>
<h1>WebView Test</h1>
<script src="main.js" type="text/javascript"></script>
</body>
</html>
这是我的代码 /
main.js -JavaScript
/ :
function callNativeApp // {
try {
webkit.messageHandlers.callbackHandler.postMessage/"Send from JavaScript"/;
} catch/err/ {
console.log/'error'/;
}
}
setTimeout/function // {
callNativeApp//;
}, 5000/;
function redHeader// {
document.querySelector/'h1'/.style.color = "red";
}
这是我的代码 /
ViewController.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//
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.
}
}
没有找到相关结果
已邀请:
2 个回复
知食
赞同来自:
在
. 由于配置具有桥接详细信息 Javascript/Swift, 你不能来回说话。
莫问
赞同来自:
然后
具体而言
</string,>