質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

794閲覧

swiftで変数を呼び出せません

coat

総合スコア8

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/04/28 22:47

編集2019/05/01 22:45

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側で関数内の値を受け渡しできていないと考えられる

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/04/29 00:15

うまくいかないとはどうなるんでしょうか
coat

2019/04/29 00:21

numberをグローバル変数にするためにclass ViewControllerの外にvar number = 0 と入れているのですが、let parameters: Parameters = ["target_user_id": number]のnumberが0になってしまいます。こちらのやりたいことはlet number = message.body as! Int で取得した数字にしたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問