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

iOS:使用SwiftUI在Webview中调用带两个参数的JS函数

在iOS开发中,使用SwiftUI在Webview中调用带两个参数的JS函数可以通过以下步骤实现:

  1. 首先,创建一个SwiftUI视图,并在其中嵌入一个Webview。可以使用WKWebView来实现Webview功能。
代码语言:txt
复制
import SwiftUI
import WebKit

struct WebView: UIViewRepresentable {
    let url: URL
    
    func makeUIView(context: Context) -> WKWebView {
        let webView = WKWebView()
        webView.load(URLRequest(url: url))
        return webView
    }
    
    func updateUIView(_ uiView: WKWebView, context: Context) {
        
    }
}
  1. 在SwiftUI视图中,创建一个@State变量来存储从JS函数返回的结果。
代码语言:txt
复制
struct ContentView: View {
    @State private var result: String = ""
    
    var body: some View {
        VStack {
            WebView(url: URL(string: "https://example.com")!)
                .frame(height: 300)
            
            Text("Result: \(result)")
                .padding()
        }
    }
}
  1. 在Webview加载完成后,使用evaluateJavaScript方法调用JS函数,并将结果存储在@State变量中。
代码语言:txt
复制
struct WebView: UIViewRepresentable {
    let url: URL
    
    func makeUIView(context: Context) -> WKWebView {
        let webView = WKWebView()
        webView.load(URLRequest(url: url))
        webView.navigationDelegate = context.coordinator
        return webView
    }
    
    func updateUIView(_ uiView: WKWebView, context: Context) {
        
    }
    
    func makeCoordinator() -> Coordinator {
        Coordinator(self)
    }
    
    class Coordinator: NSObject, WKNavigationDelegate {
        let parent: WebView
        
        init(_ parent: WebView) {
            self.parent = parent
        }
        
        func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
            webView.evaluateJavaScript("yourJSFunction('param1', 'param2')") { (result, error) in
                if let result = result as? String {
                    parent.result = result
                }
            }
        }
    }
}

在上述代码中,yourJSFunction是你要调用的JS函数,param1param2是传递给JS函数的两个参数。调用evaluateJavaScript方法后,可以通过闭包获取JS函数的返回结果,并将其存储在@State变量result中。

这样,当Webview加载完成后,JS函数会被调用,并将结果显示在SwiftUI视图中。

请注意,以上代码仅为示例,实际使用时需要根据具体需求进行适当修改。

推荐的腾讯云相关产品:腾讯云移动开发平台(https://cloud.tencent.com/product/mwp)

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

相关·内容

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券