wangkang3 5 years ago
parent
commit
0ea6b17716

+ 1 - 0
wechat_demo/android/app/build.gradle

134
}
134
}
135
135
136
dependencies {
136
dependencies {
137
    implementation project(':react-native-webview')
137
    implementation project(':react-native-gesture-handler')
138
    implementation project(':react-native-gesture-handler')
138
    implementation fileTree(dir: "libs", include: ["*.jar"])
139
    implementation fileTree(dir: "libs", include: ["*.jar"])
139
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
140
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"

+ 1 - 1
wechat_demo/android/app/src/main/java/com/wechat_demo/MainActivity.java

10
     */
10
     */
11
    @Override
11
    @Override
12
    protected String getMainComponentName() {
12
    protected String getMainComponentName() {
13
        return "wechat_demo";
13
        return "RNMicro";
14
    }
14
    }
15
}
15
}

+ 2 - 0
wechat_demo/android/app/src/main/java/com/wechat_demo/MainApplication.java

3
import android.app.Application;
3
import android.app.Application;
4
4
5
import com.facebook.react.ReactApplication;
5
import com.facebook.react.ReactApplication;
6
import com.reactnativecommunity.webview.RNCWebViewPackage;
6
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
7
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
7
import com.facebook.react.ReactNativeHost;
8
import com.facebook.react.ReactNativeHost;
8
import com.facebook.react.ReactPackage;
9
import com.facebook.react.ReactPackage;
24
    protected List<ReactPackage> getPackages() {
25
    protected List<ReactPackage> getPackages() {
25
      return Arrays.<ReactPackage>asList(
26
      return Arrays.<ReactPackage>asList(
26
          new MainReactPackage(),
27
          new MainReactPackage(),
28
            new RNCWebViewPackage(),
27
            new RNGestureHandlerPackage()
29
            new RNGestureHandlerPackage()
28
      );
30
      );
29
    }
31
    }

+ 2 - 0
wechat_demo/android/settings.gradle

1
rootProject.name = 'wechat_demo'
1
rootProject.name = 'wechat_demo'
2
include ':react-native-webview'
3
project(':react-native-webview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview/android')
2
include ':react-native-gesture-handler'
4
include ':react-native-gesture-handler'
3
project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android')
5
project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android')
4
6

+ 61 - 0
wechat_demo/app/CodeDetail.js

1
import React, {Component} from 'react';
2
import {Modal,View,Text,TouchableOpacity,Image,StyleSheet} from 'react-native';
3
4
5
export default class CodeDetail extends Component {
6
7
  constructor(props) {
8
    super(props);//这一句不能省略,照抄即可
9
    this.state = {
10
        animationType: 'fade',//none slide fade
11
        modalVisible: false,//模态场景是否可见
12
        transparent: true,//是否透明显示
13
    };
14
  }
15
16
  render() {
17
    return <Modal
18
        animationType={this.state.animationType}
19
        transparent={this.state.transparent}
20
        visible={this.state.modalVisible}
21
        onRequestClose={() => {
22
            this._setModalVisible(false)
23
        }}
24
        onShow={this.startShow} 
25
    >
26
       <TouchableOpacity style={styles.modalContainer} onPress={() => {
27
                    this._setModalVisible(false)
28
                  }}>
29
                <TouchableOpacity activeOpacity={1} style={styles.modalContent} onPress={() => {
30
                   return
31
                  }}>
32
                    <Image style={styles.codeimg} source={require('../static/img/QR_code.png')}/>
33
                  </TouchableOpacity>
34
                  </TouchableOpacity>
35
  </Modal>
36
  }
37
38
  _setModalVisible = (visible) => {
39
    this.setState({modalVisible: visible});
40
  }
41
  startShow = () => {
42
  //   alert('开始显示了');
43
  }
44
}
45
const styles = StyleSheet.create({
46
  modalContainer:{
47
    flex:1,
48
    justifyContent:'center',
49
    alignItems: 'center',
50
    backgroundColor:'rgba(0, 0, 0, 0.5)'
51
  },
52
  modalContent:{
53
    backgroundColor:'#ddd',
54
    borderTopLeftRadius:5,
55
    borderTopRightRadius:5
56
  },
57
  codeimg:{
58
    width:150,
59
    height:150
60
  }
61
});

+ 7 - 5
wechat_demo/app/Details.js

1
import React, { Component } from 'react';
1
import React, { Component } from 'react';
2
import {View,Text,Image,StyleSheet,ScrollView,Platform,Dimensions} from 'react-native'; 
2
import {View,Text,Image,StyleSheet,ScrollView,Platform,Dimensions} from 'react-native'; 
3
import { WebView } from 'react-native-webview';
3
import Header from './Header'
4
import Header from './Header'
4
var {height,width} =  Dimensions.get('window');
5
var {height,width} =  Dimensions.get('window');
5
export default class Details extends Component{
6
export default class Details extends Component{
10
11
11
    render() {
12
    render() {
12
        return (
13
        return (
13
            <View>
14
            <View style={{flex:1}}>
14
                <Header title='返回' leftEvent={()=>this.back(this)}></Header>
15
                <Header title='返回' leftEvent={()=>this.back(this)}></Header>
15
                <ScrollView style={{height:height-50}}>
16
                    <View style={{alignItems:'center',height:height-50}}>
16
                {/* <ScrollView style={{height:height-50}}> */}
17
                    {/* <View style={{alignItems:'center',height:height-50}}>
17
                        <View><Text style={{fontSize:15,marginTop:40}}>3号免手洗</Text></View>
18
                        <View><Text style={{fontSize:15,marginTop:40}}>3号免手洗</Text></View>
18
                        <View><Text style={{fontSize:14,marginTop:20,marginHorizontal:40}}>
19
                        <View><Text style={{fontSize:14,marginTop:20,marginHorizontal:40}}>
19
                        二维码内容二维码内容二维码内容二维码内容二维码内容二维码内容二维码内容二维码内容</Text></View>
20
                        二维码内容二维码内容二维码内容二维码内容二维码内容二维码内容二维码内容二维码内容</Text></View>
22
                            <Text style={{color:'#000',fontSize:12,marginHorizontal:10}}>|</Text>
23
                            <Text style={{color:'#000',fontSize:12,marginHorizontal:10}}>|</Text>
23
                            <Text style={{color:'#989898',fontSize:12}}>分享</Text>
24
                            <Text style={{color:'#989898',fontSize:12}}>分享</Text>
24
                        </View>
25
                        </View>
25
                    </View>
26
                </ScrollView>
26
                    </View> */}
27
                     <WebView  source={{ uri: 'https://h5.clewm.net/?url=qr71.cn%2Fo340AF%2FqvWOamT&hasredirect=1' }} />
28
                {/* </ScrollView> */}
27
            </View>
29
            </View>
28
        )
30
        )
29
    }
31
    }

+ 251 - 160
wechat_demo/app/Home.js

1
import React, { Component } from 'react';
1
import React, { Component } from 'react';
2
import {View,Text,Image,StyleSheet,FlatList,ScrollView,Dimensions} from 'react-native'; 
2
import { View, Text, Image, StyleSheet, FlatList, ScrollView, Dimensions, TouchableOpacity } from 'react-native';
3
import SegmentedBar from './SegmentedBar'
3
import SegmentedBar from './SegmentedBar'
4
import Carousel from './Carousel'
4
import Carousel from './Carousel'
5
import DashSecondLine from './DashSecondLine'
5
import DashSecondLine from './DashSecondLine'
6
import Header from './Header'
6
import Header from './Header'
7
var {height,width} =  Dimensions.get('window');
8
export default class Home extends Component{
7
import CodeDetail from './CodeDetail'
8
9
var { height, width } = Dimensions.get('window');
10
export default class Home extends Component {
9
11
10
    // static navigationOptions =  ({navigation,screenProps})=>({
12
    // static navigationOptions =  ({navigation,screenProps})=>({
11
    //     tabBarLabel: '首页',
13
    //     tabBarLabel: '首页',
14
16
15
    constructor(props) {
17
    constructor(props) {
16
        super(props);
18
        super(props);
17
    
18
        this.barItems = [
19
            {
20
                title:'浏览记录',
21
                type: 0,
22
                content:[
23
                    {
24
                        timeText:'今天',
25
                        title:'3号免手洗',
26
                        time:'查看于1小时前',
27
                    },
28
                    {
29
                        timeText:'今天',
30
                        title:'3号免手洗',
31
                        time:'查看于1小时前',
32
                    },
33
                    {
34
                        timeText:'今天',
35
                        title:'3号免手洗',
36
                        time:'查看于1小时前',
37
                    },
38
                    {
39
                        timeText:'今天',
40
                        title:'3号免手洗',
41
                        time:'查看于1小时前',
42
                    },
43
                    {
44
                        timeText:'今天',
45
                        title:'3号免手洗',
46
                        time:'查看于1小时前',
47
                    },
48
                    {
49
                        timeText:'昨天',
50
                        title:'3号免手洗',
51
                        time:'查看于1小时前',
52
                    },
53
                    {
54
                        timeText:'昨天',
55
                        title:'3号免手洗',
56
                        time:'查看于1小时前',
57
                    },
58
                    {
59
                        timeText:'昨天',
60
                        title:'3号免手洗',
61
                        time:'查看于1小时前',
62
                    }
63
                ]
64
            },{
65
                title:'收藏列表',
66
                type: 1,
67
                content:[
68
                    {
69
                        title:'3号免手洗',
70
                        time:'收藏于1小时前',
71
                    }
72
                ]
73
            }
74
        ];
75
    
19
20
        // var barItems = [
21
        //     {
22
        //         title:'浏览记录',
23
        //         type: 0,
24
        //         content:[
25
        //             {
26
        //                 timeText:'今天',
27
        //                 title:'3号免手洗',
28
        //                 time:'查看于1小时前',
29
        //             },
30
        //             {
31
        //                 timeText:'今天',
32
        //                 title:'3号免手洗',
33
        //                 time:'查看于1小时前',
34
        //             },
35
        //             {
36
        //                 timeText:'今天',
37
        //                 title:'3号免手洗',
38
        //                 time:'查看于1小时前',
39
        //             },
40
        //             {
41
        //                 timeText:'今天',
42
        //                 title:'3号免手洗',
43
        //                 time:'查看于1小时前',
44
        //             },
45
        //             {
46
        //                 timeText:'今天',
47
        //                 title:'3号免手洗',
48
        //                 time:'查看于1小时前',
49
        //             },
50
        //             {
51
        //                 timeText:'昨天',
52
        //                 title:'3号免手洗',
53
        //                 time:'查看于1小时前',
54
        //             },
55
        //             {
56
        //                 timeText:'昨天',
57
        //                 title:'3号免手洗',
58
        //                 time:'查看于1小时前',
59
        //             },
60
        //             {
61
        //                 timeText:'昨天',
62
        //                 title:'3号免手洗',
63
        //                 time:'查看于1小时前',
64
        //             }
65
        //         ]
66
        //     },{
67
        //         title:'收藏列表',
68
        //         type: 1,
69
        //         content:[
70
        //             {
71
        //                 title:'3号免手洗',
72
        //                 time:'收藏于1小时前',
73
        //             }
74
        //         ]
75
        //     }
76
        // ];
77
78
        var history = {
79
            title: '浏览记录',
80
            type: 0,
81
            content: [
82
                {
83
                    timeText: '今天',
84
                    title: '3号免手洗',
85
                    time: '查看于1小时前',
86
                },
87
                {
88
                    timeText: '今天',
89
                    title: '3号免手洗',
90
                    time: '查看于1小时前',
91
                },
92
                {
93
                    timeText: '今天',
94
                    title: '3号免手洗',
95
                    time: '查看于1小时前',
96
                },
97
                {
98
                    timeText: '今天',
99
                    title: '3号免手洗',
100
                    time: '查看于1小时前',
101
                },
102
                {
103
                    timeText: '今天',
104
                    title: '3号免手洗',
105
                    time: '查看于1小时前',
106
                },
107
                {
108
                    timeText: '昨天',
109
                    title: '3号免手洗',
110
                    time: '查看于1小时前',
111
                },
112
                {
113
                    timeText: '昨天',
114
                    title: '3号免手洗',
115
                    time: '查看于1小时前',
116
                },
117
                {
118
                    timeText: '昨天',
119
                    title: '3号免手洗',
120
                    time: '查看于1小时前',
121
                }
122
            ]
123
        }
124
125
        var collect = {
126
            title: '收藏列表',
127
            type: 1,
128
            content: [
129
                {
130
                    title: '3号免手洗',
131
                    time: '收藏于1小时前',
132
                }
133
            ]
134
        }
135
76
        this.justifyItemItems = ['fixed', 'scrollable'];
136
        this.justifyItemItems = ['fixed', 'scrollable'];
77
        this.indicatorTypeItems = ['none', 'boxWidth', 'itemWidth', 'customWidth'];
137
        this.indicatorTypeItems = ['none', 'boxWidth', 'itemWidth', 'customWidth'];
78
        this.indicatorPositionItems = ['top', 'bottom'];
138
        this.indicatorPositionItems = ['top', 'bottom'];
79
        if(!this.state){
139
        if (!this.state) {
80
            this.state = {}
140
            this.state = {}
81
        }
141
        }
82
        Object.assign(this.state, {
142
        Object.assign(this.state, {
83
          justifyItem: 'fixed',
84
          indicatorType: 'itemWidth',
85
          indicatorPosition: 'bottom',
86
          animated: true,
87
          autoScroll: true,
88
          activeIndex: 0,
89
          custom: false,
143
            justifyItem: 'fixed',
144
            indicatorType: 'itemWidth',
145
            indicatorPosition: 'bottom',
146
            animated: true,
147
            autoScroll: true,
148
            activeIndex: 0,
149
            custom: false,
150
            history: history,
151
            collect: collect
90
        });
152
        });
91
      }
153
    }
92
154
93
      onSegmentedBarChange(index) {
155
    onSegmentedBarChange(index) {
94
        if (index != this.state.activeIndex) {
156
        if (index != this.state.activeIndex) {
95
          this.setState({activeIndex: index});
96
          if (this.refs.carousel) {
97
            this.refs.carousel.scrollToPage(index, false);
98
          }
157
            this.setState({ activeIndex: index });
158
            if (this.refs.carousel) {
159
                this.refs.carousel.scrollToPage(index, false);
160
            }
99
        }
161
        }
100
      }
162
    }
101
163
102
      onCarouselChange(index) {
103
        index != this.state.activeIndex && this.setState({activeIndex: index});
104
      }
164
    onCarouselChange(index) {
165
        index != this.state.activeIndex && this.setState({ activeIndex: index });
166
    }
105
167
106
      getContent(item,_this){
107
          console.log('2222'+JSON.stringify(_this.props))
108
        if(item.type == 0){
168
    getContent(item, _this) {
169
        if (item.type == 0) {
109
            return (
170
            return (
110
                <View>
171
                <View>
111
                    {item.content.map((itemChild,index)=>(
112
                        <View style={{flex:1,flexDirection:'row'}}  key={'menu' + index}>
113
                            <Text style={{marginTop:30,marginLeft:15,marginRight:5,color:'#000'}}>{itemChild.timeText}</Text>
114
                        
115
                        <View style={{marginRight:20,marginVertical:10,paddingHorizontal:20,paddingTop:20,borderWidth:1,borderColor:'#ddd',borderRadius:5,height:130}}>
116
                            <View style={{height:58}}>
117
                                <View style={{flex:1,flexDirection:'row',justifyContent: 'space-between'}}>
118
                                    <View>
119
                                        <Text style={{fontSize:15,height:18,color:'#000'}}>{itemChild.title}</Text>
120
                                        <Text style={{fontSize:12,height:15,marginTop:10,color:'#bbb'}}>{itemChild.time}</Text>
172
                    {item.content.length == 0 ? <View>
173
                        <View style={{ flex: 1, justifyContent: 'center', alignContent: 'center', alignItems: 'center', flexDirection: 'column', textAlign: 'center', height: height - 130 }}>
174
                            <Image style={[styles.noResult]} source={require('../static/img/no_result.png')} />
175
                            <Text style={{ textAlign: 'center', fontSize: 15, marginTop: 15 }}>这里空空如也,快去扫描看看</Text>
176
                        </View>
177
                    </View> : item.content.map((itemChild, index) => (
178
                        <View style={{ flex: 1, flexDirection: 'row' }} key={'menu' + index}>
179
                            <Text style={{ marginTop: 30, marginLeft: 15, marginRight: 5, color: '#000' }}>{itemChild.timeText}</Text>
180
181
                            <View style={{ marginRight: 20, marginVertical: 10, paddingHorizontal: 20, paddingTop: 20, borderWidth: 1, borderColor: '#ddd', borderRadius: 5, height: 130 }}>
182
                                <View style={{ height: 58 }}>
183
                                    <View style={{ flex: 1, flexDirection: 'row', justifyContent: 'space-between' }}>
184
                                        <View>
185
                                            <Text style={{ fontSize: 15, height: 18, color: '#000' }}>{itemChild.title}</Text>
186
                                            <Text style={{ fontSize: 12, height: 15, marginTop: 10, color: '#bbb' }}>{itemChild.time}</Text>
187
                                        </View>
188
                                        <TouchableOpacity  onPress={() => {
189
                                            this.refs.dialog._setModalVisible(true);
190
                                        }}>
191
                                            <Image style={styles.tabImg} source={require('../static/img/qrcode.png')} />
192
                                        </TouchableOpacity>
121
                                    </View>
193
                                    </View>
122
                                    <Image style={styles.tabImg} source={require('../static/img/qrcode.png')}/>
123
                                </View>
194
                                </View>
124
                            </View>
125
                            <DashSecondLine backgroundColor='#ddd' len={60} width={width-100}></DashSecondLine>
126
                            <View style={{flex:1,flexDirection:'row',justifyContent: 'space-between',marginTop:20}}>
127
                                <Image style={{width:15,height:15}} source={require('../static/img/delete.png')}/>
128
                                <Text onPress={()=>{_this.props.navigation.navigate('Details')}}>查看详情</Text>
195
                                <DashSecondLine backgroundColor='#ddd' len={60} width={width - 100}></DashSecondLine>
196
                                <View style={{ flex: 1, flexDirection: 'row', justifyContent: 'space-between', marginTop: 20 }}>
197
                                    <TouchableOpacity onPress={() => { item.content.splice(index, 1); _this.setState({ history: item }) }}>
198
                                        <Image style={{ width: 15, height: 15 }} source={require('../static/img/delete.png')} />
199
                                    </TouchableOpacity>
200
                                    <Text onPress={() => { _this.props.navigation.navigate('Details') }}>查看详情</Text>
201
                                </View>
129
                            </View>
202
                            </View>
130
                        </View>
203
                        </View>
131
                        </View>
132
                    ))}
204
                    ))}
133
                </View>)
205
                </View>)
134
        }else{
206
        } else {
135
            return (
207
            return (
136
                <View>
208
                <View>
137
                    {item.content.map((itemChild,index)=>(
138
                        <View key={'menu' + index} style={{marginHorizontal:20,marginVertical:10,paddingHorizontal:20,paddingTop:20,borderWidth:1,borderColor:'#ddd',height:130,borderRadius:5 }}>
139
                            <View style={{height:58}}>
140
                                <View style={{flex:1,flexDirection:'row',justifyContent: 'space-between'}}>
209
                    {item.content.length == 0 ? <View>
210
                        <View style={{ flex: 1, justifyContent: 'center', alignContent: 'center', alignItems: 'center', flexDirection: 'column', textAlign: 'center', height: height - 130 }}>
211
                            <Image style={[styles.noResult]} source={require('../static/img/no_result.png')} />
212
                            <Text style={{ textAlign: 'center', fontSize: 15, marginTop: 15 }}>这里空空如也,快去收藏看看</Text>
213
                        </View>
214
                    </View> : item.content.map((itemChild, index) => (
215
                        <View key={'menu' + index} style={{ marginHorizontal: 20, marginVertical: 10, paddingHorizontal: 20, paddingTop: 20, borderWidth: 1, borderColor: '#ddd', height: 130, borderRadius: 5 }}>
216
                            <View style={{ height: 58 }}>
217
                                <View style={{ flex: 1, flexDirection: 'row', justifyContent: 'space-between' }}>
141
                                    <View>
218
                                    <View>
142
                                        <Text style={{fontSize:15,height:18}}>{itemChild.title}</Text>
143
                                        <Text style={{fontSize:12,height:15,marginTop:10,color:'#bbb'}}>{itemChild.time}</Text>
219
                                        <Text style={{ fontSize: 15, height: 18 }}>{itemChild.title}</Text>
220
                                        <Text style={{ fontSize: 12, height: 15, marginTop: 10, color: '#bbb' }}>{itemChild.time}</Text>
144
                                    </View>
221
                                    </View>
145
                                    <Image style={styles.tabImg} source={require('../static/img/qrcode.png')}/>
222
                                    <TouchableOpacity  onPress={() => {
223
                                        this.refs.dialog._setModalVisible(true);
224
                                    }}>
225
                                        <Image style={styles.tabImg} source={require('../static/img/qrcode.png')} />
226
                                    </TouchableOpacity>
146
                                </View>
227
                                </View>
147
                            </View>
228
                            </View>
148
                            <DashSecondLine backgroundColor='#ddd' len={60} width={width-80}></DashSecondLine>
149
                            <View style={{flex:1,flexDirection:'row',justifyContent: 'space-between',marginTop:20}}>
150
                                <Text>已收藏</Text>
151
                                <Text onPress={()=>{_this.props.navigation.navigate('Details')}}>查看详情</Text>
229
                            <DashSecondLine backgroundColor='#ddd' len={60} width={width - 80}></DashSecondLine>
230
                            <View style={{ flex: 1, flexDirection: 'row', justifyContent: 'space-between', marginTop: 20 }}>
231
                                <TouchableOpacity onPress={() => { item.content.splice(index, 1); _this.setState({ collect: item }) }}>
232
                                    <Text>取消收藏</Text>
233
                                </TouchableOpacity>
234
                                <Text onPress={() => { _this.props.navigation.navigate('Details') }}>查看详情</Text>
152
                            </View>
235
                            </View>
153
                        </View>
236
                        </View>
154
                    ))}
237
                    ))}
155
                </View>)
238
                </View>)
156
        }
239
        }
157
      }
240
    }
158
241
159
    render() {
242
    render() {
160
        let {justifyItem, indicatorType, indicatorPosition, animated, autoScroll, custom, activeIndex} = this.state;
161
        let barItems =  this.barItems;
243
        let { justifyItem, indicatorType, indicatorPosition, animated, autoScroll, custom, activeIndex } = this.state;
244
        var barItems = [];
245
        barItems.push(this.state.history);
246
        barItems.push(this.state.collect);
247
        console.log(barItems)
162
        return (
248
        return (
163
            <View>
249
            <View>
164
                <Header title="我的二维码" leftEvent={()=>{}}></Header>
250
                <Header title="我的二维码" leftEvent={() => { }}></Header>
165
                <SegmentedBar
251
                <SegmentedBar
166
                justifyItem={justifyItem}
167
                indicatorType={indicatorType}
168
                indicatorPosition={indicatorPosition}
169
                indicatorLineColor={'#00ff00'}
170
                indicatorLineWidth={custom ? 1 : undefined}
171
                indicatorPositionPadding={custom ? 3 : undefined}
172
                animated={animated}
173
                autoScroll={autoScroll}
174
                activeIndex={activeIndex}
175
                onChange={index => this.onSegmentedBarChange(index)}
252
                    justifyItem={justifyItem}
253
                    indicatorType={indicatorType}
254
                    indicatorPosition={indicatorPosition}
255
                    indicatorLineColor={'#00ff00'}
256
                    indicatorLineWidth={custom ? 1 : undefined}
257
                    indicatorPositionPadding={custom ? 3 : undefined}
258
                    animated={animated}
259
                    autoScroll={autoScroll}
260
                    activeIndex={activeIndex}
261
                    onChange={index => this.onSegmentedBarChange(index)}
176
                >
262
                >
177
    {barItems.map((item, index) => { return(<SegmentedBar.Item key={'item' + index} active={activeIndex==index} title={item.title} />)})}
263
                    {barItems.map((item, index) => { return (<SegmentedBar.Item key={'item' + index} active={activeIndex == index} title={item.title} />) })}
178
                </SegmentedBar>
264
                </SegmentedBar>
179
                <Carousel
265
                <Carousel
180
                style={styles.carousel_style}
181
                carousel={false}
182
                startIndex={activeIndex}
183
                cycle={false}
184
                ref='carousel'
185
                onChange={index => this.onCarouselChange(index)}
266
                    style={styles.carousel_style}
267
                    carousel={false}
268
                    startIndex={activeIndex}
269
                    cycle={false}
270
                    ref='carousel'
271
                    onChange={index => this.onCarouselChange(index)}
186
                >
272
                >
187
                {barItems.map((item, index) => (
188
                    <ScrollView key={'view' + index}>
189
                        {this.getContent(item,this)}
190
                    </ScrollView>
191
                ))}
273
                    {barItems.map((item, index) => (
274
                        <ScrollView key={'view' + index}>
275
                            {this.getContent(item, this)}
276
                        </ScrollView>
277
                    ))}
192
                </Carousel>
278
                </Carousel>
279
                <CodeDetail  ref="dialog"/>
193
            </View>
280
            </View>
194
        )
281
        )
195
    }
282
    }
196
}
283
}
197
284
198
const styles = StyleSheet.create({
285
const styles = StyleSheet.create({
199
    tabImg:{
286
    tabImg: {
200
        width: 30,
287
        width: 30,
201
        height: 30,
288
        height: 30,
202
    },
289
    },
203
    headImg:{
290
    noResult: {
291
        width: 100,
292
        height: 100,
293
    },
294
    headImg: {
204
        width: 40,
295
        width: 40,
205
        height: 50,
296
        height: 50,
206
    },
297
    },
207
    listContainer:{
208
        flexDirection:'row',
209
        alignItems:'center',
210
        height:60,
211
        paddingLeft:20,
212
        paddingRight:20,
213
        borderBottomWidth:1,
214
        borderBottomColor:"#ddd"
298
    listContainer: {
299
        flexDirection: 'row',
300
        alignItems: 'center',
301
        height: 60,
302
        paddingLeft: 20,
303
        paddingRight: 20,
304
        borderBottomWidth: 1,
305
        borderBottomColor: "#ddd"
215
    },
306
    },
216
    textContainer:{
217
        flexDirection:'column',
218
        alignItems:'flex-start',
219
        height:60,
220
        marginLeft:20,
307
    textContainer: {
308
        flexDirection: 'column',
309
        alignItems: 'flex-start',
310
        height: 60,
311
        marginLeft: 20,
221
    },
312
    },
222
    item:{
223
        marginLeft:20,
224
        marginRight:20,
313
    item: {
314
        marginLeft: 20,
315
        marginRight: 20,
225
    },
316
    },
226
    carousel_style:{
227
        backgroundColor: '#fff', 
228
        height: height-80, 
229
        borderTopWidth: 1, 
317
    carousel_style: {
318
        backgroundColor: '#fff',
319
        height: height - 80,
320
        borderTopWidth: 1,
230
        borderTopColor: '#f8f8f8'
321
        borderTopColor: '#f8f8f8'
231
    }
322
    }
232
})
323
})

+ 7 - 12
wechat_demo/app/ModalContent.js

61
                  <View style={styles.operationButton}>
61
                  <View style={styles.operationButton}>
62
                    <TouchableOpacity style={styles.operationButtonSpace}>
62
                    <TouchableOpacity style={styles.operationButtonSpace}>
63
                      <View style={styles.operationButtonImgContainer}>
63
                      <View style={styles.operationButtonImgContainer}>
64
                        <Image style={styles.operationButtonImg} source={require('../static/img/transmit.png')}/>
64
                        <Image style={styles.operationButtonImg} source={require('../static/img/annulus.png')}/>
65
                      </View>
65
                      </View>
66
                      <Text style={styles.operationButtonText}>当前页面不可转发</Text>
66
                      <Text style={styles.operationButtonText}>浮窗</Text>
67
                    </TouchableOpacity>
67
                    </TouchableOpacity>
68
                    <TouchableOpacity style={styles.operationButtonSpace}>
68
                    <TouchableOpacity style={styles.operationButtonSpace}>
69
                      <View style={styles.operationButtonImgContainer}>
69
                      <View style={styles.operationButtonImgContainer}>
70
                        <Image style={styles.operationButtonImg} source={require('../static/img/home.png')}/>
70
                        <Image style={styles.operationButtonImg} source={require('../static/img/setting.png')}/>
71
                      </View>
71
                      </View>
72
                      <Text style={styles.operationButtonText}>回到首页</Text>
72
                      <Text style={styles.operationButtonText}>设置</Text>
73
                    </TouchableOpacity>
73
                    </TouchableOpacity>
74
                    <TouchableOpacity style={styles.operationButtonSpace}>
74
                    <TouchableOpacity style={styles.operationButtonSpace}>
75
                      <View style={styles.operationButtonImgContainer}>
75
                      <View style={styles.operationButtonImgContainer}>
76
                        <Image style={styles.operationButtonImg} source={require('../static/img/star.png')}/>
76
                        <Image style={styles.operationButtonImg} source={require('../static/img/complaint.png')}/>
77
                      </View>
77
                      </View>
78
                      <Text style={styles.operationButtonText}>添加到我的小程序</Text>
79
                    </TouchableOpacity>
80
                    <TouchableOpacity style={styles.operationButtonSpace}>
81
                      <View style={styles.operationButtonImgContainer}>
82
                        <Image style={styles.operationButtonImg} source={require('../static/img/desktop.png')}/>
83
                      </View>
84
                      <Text style={styles.operationButtonText}>添加到桌面</Text>
78
                      <Text style={styles.operationButtonText}>反馈与投诉</Text>
85
                    </TouchableOpacity>
79
                    </TouchableOpacity>
86
                  </View>
80
                  </View>
87
                  <TouchableOpacity style={styles.modalCancleButton} onPress={() => {
81
                  <TouchableOpacity style={styles.modalCancleButton} onPress={() => {
120
    borderBottomWidth:1,
114
    borderBottomWidth:1,
121
    borderBottomColor:'#ccc',
115
    borderBottomColor:'#ccc',
122
    justifyContent:'center',
116
    justifyContent:'center',
117
    marginLeft:10,
123
  },
118
  },
124
  operationButton:{
119
  operationButton:{
125
    flexDirection:'row',
120
    flexDirection:'row',

+ 19 - 0
wechat_demo/ios/wechat_demo.xcodeproj/project.pbxproj

40
		ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED297162215061F000B7C4FE /* JavaScriptCore.framework */; };
40
		ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED297162215061F000B7C4FE /* JavaScriptCore.framework */; };
41
		ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED2971642150620600B7C4FE /* JavaScriptCore.framework */; };
41
		ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED2971642150620600B7C4FE /* JavaScriptCore.framework */; };
42
		B46B7A707B424F24AA24F557 /* libRNGestureHandler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 690940AEC2F4479BB2442423 /* libRNGestureHandler.a */; };
42
		B46B7A707B424F24AA24F557 /* libRNGestureHandler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 690940AEC2F4479BB2442423 /* libRNGestureHandler.a */; };
43
		6A31BED8F01E4623B3C5CDC7 /* libRNCWebView.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 92C06DC9F215452C8EF0D971 /* libRNCWebView.a */; };
43
/* End PBXBuildFile section */
44
/* End PBXBuildFile section */
44
45
45
/* Begin PBXContainerItemProxy section */
46
/* Begin PBXContainerItemProxy section */
349
		ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
350
		ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
350
		D14ACA86322D49458E25DE2E /* RNGestureHandler.xcodeproj */ = {isa = PBXFileReference; name = "RNGestureHandler.xcodeproj"; path = "../node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
351
		D14ACA86322D49458E25DE2E /* RNGestureHandler.xcodeproj */ = {isa = PBXFileReference; name = "RNGestureHandler.xcodeproj"; path = "../node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
351
		690940AEC2F4479BB2442423 /* libRNGestureHandler.a */ = {isa = PBXFileReference; name = "libRNGestureHandler.a"; path = "libRNGestureHandler.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
352
		690940AEC2F4479BB2442423 /* libRNGestureHandler.a */ = {isa = PBXFileReference; name = "libRNGestureHandler.a"; path = "libRNGestureHandler.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
353
		FAEB159A47DB47D39AE0CACE /* RNCWebView.xcodeproj */ = {isa = PBXFileReference; name = "RNCWebView.xcodeproj"; path = "../node_modules/react-native-webview/ios/RNCWebView.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
354
		92C06DC9F215452C8EF0D971 /* libRNCWebView.a */ = {isa = PBXFileReference; name = "libRNCWebView.a"; path = "libRNCWebView.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
352
/* End PBXFileReference section */
355
/* End PBXFileReference section */
353
356
354
/* Begin PBXFrameworksBuildPhase section */
357
/* Begin PBXFrameworksBuildPhase section */
378
				00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
381
				00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
379
				139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
382
				139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
380
				B46B7A707B424F24AA24F557 /* libRNGestureHandler.a in Frameworks */,
383
				B46B7A707B424F24AA24F557 /* libRNGestureHandler.a in Frameworks */,
384
				6A31BED8F01E4623B3C5CDC7 /* libRNCWebView.a in Frameworks */,
381
			);
385
			);
382
			runOnlyForDeploymentPostprocessing = 0;
386
			runOnlyForDeploymentPostprocessing = 0;
383
		};
387
		};
570
				00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
574
				00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
571
				139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
575
				139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
572
				D14ACA86322D49458E25DE2E /* RNGestureHandler.xcodeproj */,
576
				D14ACA86322D49458E25DE2E /* RNGestureHandler.xcodeproj */,
577
				FAEB159A47DB47D39AE0CACE /* RNCWebView.xcodeproj */,
573
			);
578
			);
574
			name = Libraries;
579
			name = Libraries;
575
			sourceTree = "<group>";
580
			sourceTree = "<group>";
1198
				LIBRARY_SEARCH_PATHS = (
1203
				LIBRARY_SEARCH_PATHS = (
1199
					"$(inherited)",
1204
					"$(inherited)",
1200
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1205
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1206
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1201
				);
1207
				);
1202
				HEADER_SEARCH_PATHS = (
1208
				HEADER_SEARCH_PATHS = (
1203
					"$(inherited)",
1209
					"$(inherited)",
1204
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1210
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1211
					"$(SRCROOT)\..\node_modules\react-native-webview\ios",
1205
				);
1212
				);
1206
			};
1213
			};
1207
			name = Debug;
1214
			name = Debug;
1224
				LIBRARY_SEARCH_PATHS = (
1231
				LIBRARY_SEARCH_PATHS = (
1225
					"$(inherited)",
1232
					"$(inherited)",
1226
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1233
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1234
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1227
				);
1235
				);
1228
				HEADER_SEARCH_PATHS = (
1236
				HEADER_SEARCH_PATHS = (
1229
					"$(inherited)",
1237
					"$(inherited)",
1230
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1238
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1239
					"$(SRCROOT)\..\node_modules\react-native-webview\ios",
1231
				);
1240
				);
1232
			};
1241
			};
1233
			name = Release;
1242
			name = Release;
1251
				HEADER_SEARCH_PATHS = (
1260
				HEADER_SEARCH_PATHS = (
1252
					"$(inherited)",
1261
					"$(inherited)",
1253
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1262
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1263
					"$(SRCROOT)\..\node_modules\react-native-webview\ios",
1254
				);
1264
				);
1255
			};
1265
			};
1256
			name = Debug;
1266
			name = Debug;
1273
				HEADER_SEARCH_PATHS = (
1283
				HEADER_SEARCH_PATHS = (
1274
					"$(inherited)",
1284
					"$(inherited)",
1275
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1285
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1286
					"$(SRCROOT)\..\node_modules\react-native-webview\ios",
1276
				);
1287
				);
1277
			};
1288
			};
1278
			name = Release;
1289
			name = Release;
1303
				LIBRARY_SEARCH_PATHS = (
1314
				LIBRARY_SEARCH_PATHS = (
1304
					"$(inherited)",
1315
					"$(inherited)",
1305
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1316
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1317
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1306
				);
1318
				);
1307
				HEADER_SEARCH_PATHS = (
1319
				HEADER_SEARCH_PATHS = (
1308
					"$(inherited)",
1320
					"$(inherited)",
1309
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1321
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1322
					"$(SRCROOT)\..\node_modules\react-native-webview\ios",
1310
				);
1323
				);
1311
			};
1324
			};
1312
			name = Debug;
1325
			name = Debug;
1337
				LIBRARY_SEARCH_PATHS = (
1350
				LIBRARY_SEARCH_PATHS = (
1338
					"$(inherited)",
1351
					"$(inherited)",
1339
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1352
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1353
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1340
				);
1354
				);
1341
				HEADER_SEARCH_PATHS = (
1355
				HEADER_SEARCH_PATHS = (
1342
					"$(inherited)",
1356
					"$(inherited)",
1343
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1357
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1358
					"$(SRCROOT)\..\node_modules\react-native-webview\ios",
1344
				);
1359
				);
1345
			};
1360
			};
1346
			name = Release;
1361
			name = Release;
1370
				LIBRARY_SEARCH_PATHS = (
1385
				LIBRARY_SEARCH_PATHS = (
1371
					"$(inherited)",
1386
					"$(inherited)",
1372
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1387
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1388
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1373
				);
1389
				);
1374
				HEADER_SEARCH_PATHS = (
1390
				HEADER_SEARCH_PATHS = (
1375
					"$(inherited)",
1391
					"$(inherited)",
1376
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1392
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1393
					"$(SRCROOT)\..\node_modules\react-native-webview\ios",
1377
				);
1394
				);
1378
			};
1395
			};
1379
			name = Debug;
1396
			name = Debug;
1403
				LIBRARY_SEARCH_PATHS = (
1420
				LIBRARY_SEARCH_PATHS = (
1404
					"$(inherited)",
1421
					"$(inherited)",
1405
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1422
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1423
					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1406
				);
1424
				);
1407
				HEADER_SEARCH_PATHS = (
1425
				HEADER_SEARCH_PATHS = (
1408
					"$(inherited)",
1426
					"$(inherited)",
1409
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1427
					"$(SRCROOT)\..\node_modules\react-native-gesture-handler\ios/**",
1428
					"$(SRCROOT)\..\node_modules\react-native-webview\ios",
1410
				);
1429
				);
1411
			};
1430
			};
1412
			name = Release;
1431
			name = Release;

+ 1 - 1
wechat_demo/ios/wechat_demo/AppDelegate.m

19
  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
19
  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
20
20
21
  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
21
  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
22
                                                      moduleName:@"wechat_demo"
22
                                                      moduleName:@"RNMicro"
23
                                               initialProperties:nil
23
                                               initialProperties:nil
24
                                                   launchOptions:launchOptions];
24
                                                   launchOptions:launchOptions];
25
  rootView.backgroundColor = [UIColor blackColor];
25
  rootView.backgroundColor = [UIColor blackColor];

+ 1 - 0
wechat_demo/package.json

10
    "react": "16.6.3",
10
    "react": "16.6.3",
11
    "react-native": "0.58.5",
11
    "react-native": "0.58.5",
12
    "react-native-gesture-handler": "1.0.16",
12
    "react-native-gesture-handler": "1.0.16",
13
    "react-native-webview": "5.11.0",
13
    "react-navigation": "3.0.9"
14
    "react-navigation": "3.0.9"
14
  },
15
  },
15
  "devDependencies": {
16
  "devDependencies": {

BIN
wechat_demo/static/img/1.jpg


BIN
wechat_demo/static/img/2.jpg


BIN
wechat_demo/static/img/3.jpg


BIN
wechat_demo/static/img/QR_code.png


BIN
wechat_demo/static/img/annulus.png


BIN
wechat_demo/static/img/circle.png


BIN
wechat_demo/static/img/complaint.png


BIN
wechat_demo/static/img/no_result.png


BIN
wechat_demo/static/img/point.png


BIN
wechat_demo/static/img/setting.png


+ 10 - 2
wechat_demo/yarn.lock

1977
  resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
1977
  resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
1978
  integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
1978
  integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
1979
1979
1980
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
1980
escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
1981
  version "1.0.5"
1981
  version "1.0.5"
1982
  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1982
  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1983
  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
1983
  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
2724
    strip-ansi "^4.0.0"
2724
    strip-ansi "^4.0.0"
2725
    through "^2.3.6"
2725
    through "^2.3.6"
2726
2726
2727
invariant@^2.2.2, invariant@^2.2.4:
2727
invariant@2.2.4, invariant@^2.2.2, invariant@^2.2.4:
2728
  version "2.2.4"
2728
  version "2.2.4"
2729
  resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
2729
  resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
2730
  integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
2730
  integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
4855
  dependencies:
4855
  dependencies:
4856
    prop-types "^15.6.1"
4856
    prop-types "^15.6.1"
4857
4857
4858
react-native-webview@5.11.0:
4859
  version "5.11.0"
4860
  resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-5.11.0.tgz#7b1eeac7f3ea3a6f7bab3eefc10b272f0a008603"
4861
  integrity sha512-8hqq7Gr5tP6seWUJ5G1qmSmSo53hljhXIkZT09SX07pfAw1pbEoIMg7uYvZGk7BVkYiwIO4nkyg+M501E8CL8g==
4862
  dependencies:
4863
    escape-string-regexp "1.0.5"
4864
    invariant "2.2.4"
4865
4858
react-native@0.58.5:
4866
react-native@0.58.5:
4859
  version "0.58.5"
4867
  version "0.58.5"
4860
  resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.58.5.tgz#672709bafd845e35ab4dd32b8ccccae32d54d552"
4868
  resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.58.5.tgz#672709bafd845e35ab4dd32b8ccccae32d54d552"