how to programmatically take a screenshot in react

2019-04-07 11:29发布

问题:

How can I take a screenshot in ReactNative. I need a screenshot and put it in Image component. How could I do?

回答1:

There is a library to do just that: React Native View Shot

import RNViewShot from "react-native-view-shot";

RNViewShot.takeSnapshot(viewRef, {
  format: "jpeg",
  quality: 0.8
})
.then(
  uri => console.log("Image saved to", uri),
  error => console.error("Oops, snapshot failed", error)
);


回答2:

For a capture of the currently displayed screen use captureScreen():

import { captureScreen } from "react-native-view-shot";

captureScreen({
  format: "jpg",
  quality: 0.8
})
.then(
  uri => console.log("Image saved to", uri),
  error => console.error("Oops, snapshot failed", error)
);

This method will capture the contents of the currently displayed screen as a native hardware screenshot. It does not require a ref input, as it does not work at the view level. This means that ScrollViews will not be captured in their entirety - only the portions currently visible to the user.

You can find more about the react-native-view-shot library here