【问题标题】:how to pass values to a web view which is loading a react native app如何将值传递给正在加载反应本机应用程序的 Web 视图
【发布时间】:2020-11-15 19:55:26
【问题描述】:

我是反应原生的新手,对 iOS 使用 swift 语言非常熟悉。我的要求是在 iOS 现有应用程序中会有一个 Web 视图正在加载反应原生应用程序,这里我想使用 iOS 应用程序的一些值在本机反应。

例如,在 iOS 应用程序中会有一个授权码,我想在加载到 UIWebview 中的反应原生应用程序中使用此授权码。

 override func viewDidLoad() {
     super.viewDidLoad()
        loadReactNativeApp()
    
        }
    

    func loadReactNativeApp(){
            let link = "https://staging.abcdefg.com:1442/appname_web/"
    
                let finalUrl:URL!
             finalUrl = URL(string: link)
     
                let urlRequest = URLRequest.init(url: finalUrl!)
    
                webview.load(urlRequest)
               
            }

我不知道我们如何将值传递给本机应用程序。任何人都可以帮助我解决我的问题。谢谢

【问题讨论】:

    标签: ios swift react-native


    【解决方案1】:

    您必须使用来自WebViewinjectedJavaScript 属性。

    例如: 首先声明一个jsCode变量:

    const amount = 2
    const jscode = `
      if (document.getElementById('txtAmount') == null) {
          // field not existing, deal with the error
        } else {
          document.getElementById('txtAmount').value = '${amount}';
        }
    `
    

    请注意“`”字符。用于将变量放入字符串中。

    然后像这样使用它:

    <WebViewBridge
      injectedJavaScript={jsCode}
    

    【讨论】:

    • 实际上 WebViews 将在 iOS 本机应用程序中。我们正在向该 WebViews 传递一个暂存 url 以及一些值,如 auth token。
    猜你喜欢
    • 2020-03-18
    • 1970-01-01
    • 2023-03-06
    • 2015-01-04
    • 1970-01-01
    • 2021-04-25
    • 2018-03-26
    • 1970-01-01
    • 2020-06-08
    相关资源
    最近更新 更多