网页和 IOS 应用程序之间的 Javascript 接口不起作用。为啥我的应用收不到消息?

Posted

技术标签:

【中文标题】网页和 IOS 应用程序之间的 Javascript 接口不起作用。为啥我的应用收不到消息?【英文标题】:Javascript interface between Web page and IOS app is not working. Why my app can't receive the messages?网页和 IOS 应用程序之间的 Javascript 接口不起作用。为什么我的应用收不到消息? 【发布时间】:2016-06-08 09:04:46 【问题描述】:

我有一个加载页面的 WKWebView。在这个页面中有一个按钮调用一个javascript函数。我希望这个 javascript 函数将一些字符串数据发送到我的应用程序。

这就是我的 Swift 代码的构建方式:

import UIKit
import SnapKit
import WebKit

class TestVC: UIViewController,WKScriptMessageHandler 

    let defaults = NSUserDefaults.standardUserDefaults()


    override func viewDidLoad() 
        super.viewDidLoad()
        //Cookies
        let cookie = "document.cookie = '.ASPXAUTH=\(defaults.stringForKey("authKey")!)';"
        let requestUrl = NSMutableURLRequest(URL: NSURL(string: "\(MyConstants.WEBURL)")!)
        requestUrl.addValue(".ASPXAUTH=\(defaults.stringForKey("authKey")!)", forHTTPHeaderField: "Cookie")

        //Settings
        let webViewConfiguration = WKWebViewConfiguration()
        let userContentController = WKUserContentController()
        userContentController.addScriptMessageHandler(self, name: "callbackHandler")
        webViewConfiguration.userContentController = userContentController

        //UI
        let webView = WKWebView(frame: CGRectZero, configuration: webViewConfiguration)
        view.addSubview(webView)
        webView.snp_makeConstraints  (make) in
            make.edges.equalTo(self.view.snp_edges)
        
        webView.loadRequest(requestUrl)


    

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    

    func userContentController(userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage) 
        print("got message")
    



这是我的 javascript:

window.webkit.messageHandlers.callbackHandler.postMessage(json);

但是调用脚本的时候,ios端什么都没有打印出来。我在这里错过了什么吗?

【问题讨论】:

【参考方案1】:

网站出现问题。代码正在运行。

【讨论】:

以上是关于网页和 IOS 应用程序之间的 Javascript 接口不起作用。为啥我的应用收不到消息?的主要内容,如果未能解决你的问题,请参考以下文章

认识 JavaScrip

javascrip基础课程-1

javascrip

html,css,javascript在制作网页中的作用,三者之间有何种联系?

iOS开发如何学习前端

javascrip cookie