swift初心者です。PHPで作成したWebサービスからJavaScriptを使用してswiftにデータを受け入れしたいと考えております。ネットで調べたところ次のようなコードを見つけ実装しましたが、うまくいきません。どうぞお知恵を貸してください。よろしくお願いします。
<PHP>
以下のJavaScriptを埋め込み
<script> var number = <?php echo $user_id;?> window.webkit.messageHandlers.hoge.postMessage(number) </script><Swift>
ViewController.swift
ViewController.swift
class ViewController: UIViewController, WKScriptMessageHandler {
override func viewDidLoad() {
super.viewDidLoad()
let webConfig: WKWebViewConfiguration = WKWebViewConfiguration()
let userController: WKUserContentController = WKUserContentController()
userController.add(self, name: "hoge")
webConfig.userContentController = userController
let wkWebView = WKWebView(frame: .zero, configuration: webConfig)
self.view.addSubview(wkWebView)
}
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "hoge" {
let number = message.body as! Int
// do something
}
}
}
let parameters: Parameters = ["target_user_id": number]
※ let numberの値をlet parametersのnumberに持ってきたいと考えております。
・試したこと
Viewcontrollerのnumberに直接数字を入力すると成功する
関数の外に変数numberを指定するとその値になる
JavaScript側の値を直接入力したが値は取れなかった
上記によりswift側で関数内の値を受け渡しできていないと考えられる
あなたの回答
tips
プレビュー