javascript - 使用 UIWebview 使用 javascript 调用 swift 函数

标签 javascript swift uiwebview

如果有人提出这个问题,我深表歉意,但我找不到任何答案或解决方案。我希望从“UIWebView”调用 JavaScript 函数并快速收听它。我发现的任何示例都使用“WKWebView”。必须有一种简单的方法来收听如下所示的 JavaScript 函数:

// HTML / JS
<div id ="myDiv" onclick="listenInSwift()">myItem</div>

这对 UIWebView 来说可能吗?谢谢大家!

最佳答案

像这样实现 listenInSwift:

function listenInSwift() {
    window.location = 'yoururlscheme://somehost?greeting=hello'
} 

然后在您的 UIWebViewDelegate 类中使用此代码监听此 URL:

func webView(_ webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType navigationType: UIWebViewNavigationType) -> Bool {
    if request.URL.scheme == 'yoururlscheme' {
        print('Hello JavaScript...')
    }
}

不要忘记在 Xcode 中注册您的 URL Scheme(在本例中为“yoururlscheme”)。

要在 WebView 中加载本地文件,试试这个:

let baseURL = NSURL.fileURLWithPath(NSBundle.mainBundle().bundlePath);
let relativePath = "www/\(file)"
let fileURL = NSURL(string: relativePath, relativeToURL: baseURL);
let URLRequest = NSURLRequest(URL: fileURL!);
webView.loadRequest(URLRequest)

关于javascript - 使用 UIWebview 使用 javascript 调用 swift 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36139062/

相关文章:

javascript - 想要检查变量是否存在于数组中

iOS Swift YouTube 数据 API v3 集成崩溃应用程序

iphone - UIWebView 更改 dataDetectorType 链接的颜色

javascript - JQuery - 根据 tabindex 在 enter 上的输入之间切换焦点

javascript - 在 ReactJS 中,我的代码是否有支持实例,因此可以使用引用?

arrays - 排序中的 Swift For 循环枚举不同

objective-c - 如何将 Swift 数组转换为 CFArray?

ios - 快速错误: Classes implemented in two places but files I don't touch?

javascript - iPhone 在 UIWebView 中加载 Htmlstring 并使用 Javascript 替换文本

javascript - 当 ng-model 为 null 时,在 select 中设置默认值