基础篇章:关于 React Native 之 WebView 的讲解

FDYTor 8年前
   <p>今天讲解的这个组件真的是很基础,不用多说,相信大家关于这个控件,一看就会。当然实践才是检验自己最好的方法。</p>    <p>大家好,我就是很多人喜欢用,而且常用的组件:WebView ,我就是WebView ,WebView 就是我。我的功能就是一句:在本地视图中呈现web内容。给我一个链接,我还你一堆内容。非常的神奇吧,这就像,牛吃进去的是草,拉出来的是……不对,哈哈,开个玩笑。和我玩其实很简单,了解我的性格特点,再给我一个吃的,我就能给你玩出你想要的花样。</p>    <h2>我的属性</h2>    <ul>     <li>automaticallyAdjustContentInsets bool 设置是否自动调整内嵌插页内容</li>     <li>contentInset 设置网页内嵌内容大小,距离上下左右边距</li>     <li>injectedJavaScript string 设置在网页加载之前注入的一段JS代码</li>     <li>mediaPlaybackRequiresUserAction bool 设置页面中的HTML5音视频是否需要在用户点击后再开始播放。默认值为false</li>     <li>onError function 网页加载失败时调用</li>     <li>onLoad function 网页加载成功时调用</li>     <li>onLoadEnd function 网页加载结束时(无论成功或失败)调用</li>     <li>onLoadStart function 网页加载开始时调用</li>     <li>onNavigationStateChange function 当导航状态发生变化时回调</li>     <li>renderError function 渲染视图错误时使用</li>     <li>renderLoading function 该函数功能是返回一个加载指示器</li>     <li>scalesPageToFit bool 设置是否要把网页缩放到适应视图的大小,和改变缩放比例</li>     <li>source {uri: string, method: string, headers: object, body: string}, {html: string, baseUrl: string}, number 存放加载静态html或者url等</li>     <li>startInLoadingState bool 强制webview在第一次加载时是否显示加载视图</li>     <li>domStorageEnabled bool android 控制dom存储是否启用</li>     <li>javaScriptEnabled bool android 是否启用支持js</li>     <li>userAgent string android 设置userAgent</li>     <li>allowsInlineMediaPlayback bool ios 指定HTML5视频是在网页当前位置播放还是使用原生的全屏播放器播放,默认值为false。</li>     <li>bounces bool ios 设置当它到达内容的边缘web视图是否反弹。默认值是true。</li>     <li>dataDetectorTypes DataDetectorTypes, [object Object] ios 确实可点击的url类型</li>     <li>decelerationRate ScrollView.propTypes.decelerationRate ios 滚动滑动速率</li>     <li>onShouldStartLoadWithRequest function ios</li>     <li>scrollEnabled bool ios 是否滚动</li>    </ul>    <p>看看,我的性格还是很多变的吧,这么多,其实用起来都是很简单的,不信看实例。</p>    <h2>我的娇羞展示</h2>    <h3>效果图</h3>    <p style="text-align:center"><img src="https://simg.open-open.com/show/9ad2edbbb7206099af51d4b19ee85134.gif"></p>    <h3>实例代码</h3>    <pre>  <code class="language-javascript">/**   * Sample React Native App   * https://github.com/非死book/react-native   * @flow   */    import React, { Component } from 'react';  import {    AppRegistry,    StyleSheet,    Text,    View,    TouchableOpacity,    WebView  } from 'react-native';    WEBVIEW_REF = 'webview';    export default classWebViewDemoextendsComponent{    render() {      return (         <Viewstyle={styles.container}>          <Viewstyle={styles.title_view}>             <TouchableOpacity              onPress={this.goBack.bind(this)}              >              <Textstyle={styles.title_text}>                 返回              </Text>            </TouchableOpacity>           <Textstyle={styles.title_text}>                 非著名程序员           </Text>            <TouchableOpacity              onPress={this.goForward.bind(this)}              >           <Textstyle={styles.title_text}>                 前进           </Text>           </TouchableOpacity>          </View>          <WebView            ref={WEBVIEW_REF}            source={{uri: 'http://godcoder.me/'}}            startInLoadingState={true}            domStorageEnabled={true}            javaScriptEnabled={true}            automaticallyAdjustContentInsets={true}        />        </View>        );    }        goBack(){          this.refs[WEBVIEW_REF].goBack();          }            goForward(){          this.refs[WEBVIEW_REF].goForward();         }  }    const styles = StyleSheet.create({     container: {      flex: 1,      backgroundColor: 'white',    },     title_view:{      flexDirection:'row',      height:50,      paddingLeft:15,      paddingRight:15,      justifyContent: 'space-between',      alignItems: 'center',      backgroundColor:'#27b5ee',    },     title_text:{      color:'white',      fontSize:22,      textAlign:'center'    },  });    AppRegistry.registerComponent('WebViewDemo', () => WebViewDemo);  </code></pre>    <p>是不是很简单,对就是这么简单,赶紧行动起来学习吧。好记性不如敲代码。</p>    <p> </p>    <p>来自:http://godcoder.me/2017/03/14/基础篇章:关于 React Native 之 WebView 的讲解/</p>    <p> </p>