nas_engine
Version:
engine for nas
78 lines (68 loc) • 2.08 kB
JavaScript
;
var React = require('react-native');
var {
Text,
View,
Image,
Platform,
Dimensions
} = React;
var { width, height } = Dimensions.get('window'),
phone = {"width":width,"height":height},
needInterruptGesture,
retio = global.retio;
var AnchorR1 = React.createClass({
_creatGrid(){
var result = [],
self = this,
conf = this.props.conf;
var imgArr = conf.anchors;
imgArr.map(function(v, index){
var nativeSchema = v.link,
record = v.code;
result.push(
<View style={[styles.cell]} onStartShouldSetResponder={self._onStartShouldSetResponder} onResponderMove={self._onResponderMove} onResponderRelease={self._onResponderRelease(nativeSchema, record)} >
<Image style={{width:Number(v.width)/retio , height: Number(v.height)/retio}} source={{uri : v.img}} resizeMode={'stretch'} />
</View>
);
});
return result;
},
_onStartShouldSetResponder(evt){
needInterruptGesture = false;
return true;
},
_onResponderMove(evt) {
needInterruptGesture = true;
},
_onResponderRelease(schema, record) {
var method = global.HBApp.Methods;
return ((evt)=>{
if(needInterruptGesture == false){
method.navigator.openAdsPageWithUrl(schema);
method.analysis.husorEvent(record, {});
method.analysis.umengEvent(record,null);
}
});
},
render(){
var conf = this.props.conf;
return(
<View style={[styles.rowContainer, {backgroundColor:conf.bgColor,paddingTop:Number(conf.paddingTop)/retio,paddingBottom: Number(conf.paddingBottom)/retio}]}>
{this._creatGrid()}
</View>
);
}
});
var styles = React.StyleSheet.create({
rowContainer: {
flexWrap: 'nowrap',
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'flex-start',
width: phone.width
},
cell: {
}
});
module.exports = AnchorR1;