首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Swift中获取UIWebView中的JS值?

在Swift中获取UIWebView中的JS值,可以通过以下步骤实现:

  1. 首先,确保你已经将UIWebView添加到你的视图层级中,并设置好相应的代理。
  2. 在你的视图控制器中,实现UIWebViewDelegate协议,并设置UIWebView的代理为当前视图控制器。
  3. 使用webView(_:shouldStartLoadWith:navigationType:)方法来拦截UIWebView加载的请求,并获取JS值。
代码语言:swift
复制

func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebView.NavigationType) -> Bool {

代码语言:txt
复制
   if let url = request.url, let scheme = url.scheme, scheme == "jsvalue" {
代码语言:txt
复制
       // 解析JS值
代码语言:txt
复制
       if let jsValue = url.host {
代码语言:txt
复制
           // 在这里处理获取到的JS值
代码语言:txt
复制
           print("JS值:\(jsValue)")
代码语言:txt
复制
       }
代码语言:txt
复制
       return false
代码语言:txt
复制
   }
代码语言:txt
复制
   return true

}

代码语言:txt
复制

在UIWebView中,你可以通过使用自定义的URL scheme(例如"jsvalue")来传递JS值。当UIWebView加载一个带有自定义URL scheme的请求时,可以通过解析URL来获取JS值。

  1. 在你的JS代码中,使用window.location.href来加载自定义URL scheme的请求,并将JS值作为URL的host部分。
代码语言:javascript
复制

// 在JS中获取值并传递给Swift

var jsValue = "Hello, Swift!"

window.location.href = "jsvalue://" + jsValue

代码语言:txt
复制

这样,当JS代码执行时,会触发UIWebView的代理方法,并获取到JS值。

需要注意的是,UIWebView已经在iOS 12中被废弃,推荐使用WKWebView来替代。以上代码示例适用于UIWebView,如果你使用的是WKWebView,可以相应地修改代理方法。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券