首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React-native:如何将webview当前网页保存为动态?

React-native:如何将webview当前网页保存为动态?
EN

Stack Overflow用户
提问于 2021-07-15 06:43:03
回答 1查看 290关注 0票数 0

我是react原生的新手。我正尝试在我的react原生应用(安卓)中使用WebView。它工作得非常好。我想,加载网页后,在webview中,它会自动保存为本地文件。请帮帮我。

编辑:我想,应用程序将网页保存为本地文件,而不是保存URL。

EN

回答 1

Stack Overflow用户

发布于 2021-07-15 09:58:56

我猜您正在使用react-native-webview

有一个叫做onNavigationStateChange的道具。

例如,可以使用以下命令将url保存到AsyncStorage

代码语言:javascript
复制
const storeData = async (url) => {
  try {
    await AsyncStorage.setItem(
      'lastURL',
      url
    );
  } catch (error) {
    // Error saving data
  }
};

...
<WebView
...
onNavigationStateChange={(navState) => {
    const { url } = navState;
    storeData(url)
  }}
/>

如果您只想要=,请编辑html。

代码语言:javascript
复制
import * as React from 'react';
import { WebView } from 'react-native-webview';
import { View, Text } from 'react-native';

export default function App() {
  const injectedJavascript = `(function() {
      window.postMessage = function(data) {
    window.ReactNativeWebView.postMessage(data);
    return true;
  };
  window.postMessage(new XMLSerializer().serializeToString(document))
})()`
const saveHTML = (htmlString)=>{
  ...
}
  return (
    <View
      style={{
        flex: 1,
      }}>
      <WebView
        originWhitelist={['*']}
        javaScriptEnabled={true}
        injectedJavaScript={injectedJavascript}
        onMessage={e => {saveHTML(e.nativeEvent.data)}}
        source={{
          uri: 'https://google.com'
        }}
      />
    </View>
  );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68385874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档