主要是使用到InjectJavaScript注入js代码使得页面滚动
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
WebView,
Dimensions,
TouchableHighlight
} from 'react-native';
const {width, height} = Dimensions.get('window');
class Find extends Component {
constructor(props){
super(props);
this.state={
uri1 : 'http://www.lcode.org'
}
}
render() {
return (
<View style={styles.container}>
<WebView style={styles.webview_style}
source={{uri:this.state.uri1}}
javaScriptEnabled={true}
domStorageEnabled={true}
scalesPageToFit={true}
startInLoadingState={true}
injectedJavaScript ={HTML}
>
</WebView>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
webview_style:{
flex:1,
width:width,
height:height-20,
backgroundColor:'gray'
}
});
const HTML = `
var currentPosition=0,timer;
timer = setInterval(function(){
currentPosition+=2;
if(currentPosition < document.body.scrollHeight)
{
window.scrollTo(0,currentPosition);
console.log(currentPosition);
}
else
{
window.scrollTo(0,document.body.scrollHeight);
currentPosition = 0;
window.scrollTo(0,currentPosition);
console.log('bottomalread');
}
},1)
`;
module.exports = Find;
页面:
<html>
<head>
<script type="text/javascript">
</script>
<style type="text/css">
</style>
</head>
<body>
<div style="height:1000px;text-align:center;font-size:200px;font-weight:bold;">饭</div>
<div style="height:1000px;text-align:center;font-size:200px;font-weight:bold;">吃</div>
<div style="height:1000px;text-align:center;font-size:200px;font-weight:bold;">家</div>
<div style="height:1000px;text-align:center;font-size:200px;font-weight:bold;">回</div>
<div style="height:1000px;text-align:center;font-size:200px;font-weight:bold;">你</div>
<div style="height:1000px;text-align:center;font-size:200px;font-weight:bold;">带</div>
</body>
</html>
实现的就是让页面循环滚动