react-native - react native如何获取WebView对象的html源代码

标签 react-native

我正在尝试访问第 3 方网页的 HTML 源代码,以读取在 react-native 的 WebView 组件中加载的页面的特定 DOM 元素值。

<WebView
        source={{uri: 'https://www.amazon.com'}}
      />

并假设有一个这样的 DOM 元素:
<span class="price bold some-class-name">$459.00</span>

我也试过这个组件,但不能这样做:
https://github.com/alinz/react-native-webview-bridge

有没有办法在 WebView 中获取页面的当前 HTML 源代码并读取特定的 DOM 元素值?

最佳答案

看起来这个功能是在 React Native v0.37 中添加的。添加 onMessage 参数会将 postMessage 变量注入(inject)您的 WebView。然后,您可以像往常一样注入(inject) JavaScript,选择您的元素并将其发回消息。

render (
  const jsCode = "window.postMessage(document.getElementsByClassName("price bold some-class-name"))"

  return (
     <View style={styles.container}>
         <WebView
             source={{uri: "http://..."}}
             onMessage={this._onMessage}
             injectedJavaScript={jsCode}
         />
     </View>
  );
)

关于react-native - react native如何获取WebView对象的html源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41294300/

相关文章:

react-native - ios/android 的 react-native 中的 barcodescanner

javascript - 功能不可用 : facebook login is currently unavailable for this app since we are updating additional details for this app. 请重试

javascript - React Native - 如何执行非常柔和的振动?

react-native - 使用 redux observable 显示警报框

javascript - 即使设置了宽度,TouchableOpacity 也会占用所有可用空间

reactjs - 后退按钮在 react native 导航中不起作用

android - ./gradlew assembleRelease 更新以将 native 59.8 和 gradle react 为 5.1 时构建失败

javascript - 当应用程序处于后台时存储时间戳。 react native

ios - 如何摆脱 "CocoaPods could not find compatible versions for pod"?我尝试更新 cocoapod 和 pod repo

react-native - React Native Redux - 从 asyncstorage 初始化默认状态