Swift:如何使用JavascriptCore调用加载文件中的函数

时间:2016-05-27 10:46:16

标签: javascript swift

类似于以引用的外部查询开头的常规js文件,然后是你的js自定义代码,我需要在Swift中使用JavascriptCore做同样的事情。

我看到了这个Objective-C example

server {

    listen       80;
    server_name  localhost;

    location = / {

        # redirect if no app is specified
        return 301 http://www.domain.com; 
    }

    location ~* ^/([^/]+)(.*)\.(jpe?g|png|svg|gif|ico|doc|docx|xls|xlsx|pdf|txt)$ {

        # handle static files
        alias /usr/share/nginx/apps/$1/public$2.$3;
    }

    location ~* ^/([^/]+)(.*)$ {

        # handle laravel requests
        root /usr/share/nginx/apps/$1/public;

        try_files /index.php =404;

        include         fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_param   REQUEST_URI  $2;
        fastcgi_param   SCRIPT_FILENAME  $document_root/index.php;
    }
}

它完成了关闭外部js文件的第一部分,但我还想添加一个js块来调用该引用文件中的一些函数。我怎么做!?你能在Swift中做到吗?

2 个答案:

答案 0 :(得分:1)

您可以在webView上调用evaluateJavascript来调用函数并获取信息,这样您就可以执行以下操作:

webView.evaluateJavascript("someFuncton();") { (result, error) in
    if (!error) {
         print(result(
    }
}

webView.evaluateJavascript("document.height") { (result, error) in
    if (!error) {
         print(result(
    }
}

您甚至可以使用消息hanlders使用webKit将消息从Javascript发布回本机swift函数。请参阅此ref

以下是使用Javascript

发送邮件的目标-c guide

答案 1 :(得分:0)

要获得完整答案,您需要: 1.继承自WKNavigationDelegate 2.在viewDidLoad中:

self.webView.navigationDelegate = self

3。并在didFinishNavigation中调用它,请参阅this