繁体   English   中英

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

[英]Swift: How to use JavascriptCore to call a function in a loaded file

类似于以引用的外部查询开头然后是您的 js 自定义代码的常规 js 文件,我需要使用 JavascriptCore 在 Swift 中执行相同的操作。

我看到了这个 Objective-C示例

NSURL *scriptURL = [NSURL URLWithString:@"path/to/fancyLibrary.js"];
NSError *error = nil;
NSString *script = [NSString stringWithContentsOfURL:scriptURL encoding:NSUTF8StringEncoding error:&error];
[context evaluateScript:script];

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

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

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

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

您甚至可以使用 webKit 使用消息处理程序将来自 Javascript 的消息发布回本机 swift 函数。 看到这个参考

这是使用Javascript双向发送消息的objective-c 指南

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

self.webView.navigationDelegate = self

3.并在didFinishNavigation中调用它,看这个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM