refactor: using RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD for sync method call

This commit is contained in:
Kyle Fang
2020-09-27 22:22:07 +08:00
parent 59f8ad5705
commit d4ce3adbf4
6 changed files with 44 additions and 66 deletions

View File

@@ -1,57 +1,36 @@
/**
* Sample React Native App
*
* adapted from App.js generated by the following command:
*
* react-native init example
*
* https://github.com/facebook/react-native
*/
import React, { Component } from "react";
import { StyleSheet, Text, View } from "react-native";
import convertToCache from "react-native-video-cache";
import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View } from 'react-native';
import convertToCache from 'react-native-video-cache';
export default class App extends Component<{}> {
state = {
status: 'starting',
message: '--'
};
componentDidMount() {
convertToCache('https://cdn.plyr.io/static/demo/View_From_A_Blue_Moon_Trailer-720p.mp4').then((message) => {
this.setState({
status: 'native callback received',
message
});
});
}
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>VideoCache example</Text>
<Text style={styles.instructions}>STATUS: {this.state.status}</Text>
<Text style={styles.welcome}>NATIVE CALLBACK MESSAGE</Text>
<Text style={styles.instructions}>{this.state.message}</Text>
</View>
);
}
export default function App() {
const url =
"https://cdn.plyr.io/static/demo/View_From_A_Blue_Moon_Trailer-720p.mp4";
return (
<View style={styles.container}>
<Text style={styles.welcome}>Original URL</Text>
<Text style={styles.instructions}>{url}</Text>
<Text style={styles.welcome}>Proxy URL for Video Component</Text>
<Text style={styles.instructions}>{convertToCache(url)}</Text>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
justifyContent: "center",
alignItems: "center",
backgroundColor: "#F5FCFF",
padding: 20
},
welcome: {
fontSize: 20,
textAlign: 'center',
textAlign: "center",
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
textAlign: "center",
color: "#333333",
marginBottom: 5,
},
});