#
转载请标明出处:
[http://blog.csdn.net/developer_jiangqq/article/details/50676379](http://blog.csdn.net/developer_jiangqq/article/details/50676379)
本文出自:[【江清清的博客】](http://blog.csdn.net/developer_jiangqq)
# (一)前言
【好消息】个人网站已经上线运行,后面博客以及技术干货等精彩文章会同步更新,请大家关注收藏:[http://www.lcode.org](http://www.lcode.org/)
今天我们一起来看一下WebView组件讲解以及使用实例
刚创建的React Native技术交流1群(282693535),React Native交流2群:(496601483),请不要重复加群!,欢迎各位大牛,React Native技术爱好者加入交流!同时博客左侧欢迎微信扫描关注订阅号,移动技术干货,精彩文章技术推送!
该WebView组件进行创建渲染一个原生的WebView,进行加载一个网页。
# (二)属性方法
1. 继承可以使用View组件的所有属性和Style(具体查看:[http://facebook.github.io/react-native/docs/view.html#content](http://facebook.github.io/react-native/docs/view.html#content) 和[http://facebook.github.io/react-native/docs/view.html#style](http://facebook.github.io/react-native/docs/view.html#style))
2. automaticallyAdjustContentInsets bool 设置是否自动调整内容
3. contentInset {top:number,left:number,bottom:number,right:number} 设置内容所占的尺寸大小
4. html string WebView加载的HTML文本字符串
5. injectJavaScript string 当网页加载之前进行注入一段js代码
6. onError function 方法 当网页加载失败的时候调用
7. onLoad function 方法 当网页加载结束的时候调用
8. onLoadEnd fucntion 当网页加载结束调用,不管是成功还是失败
9. onLoadStart function 当网页开始加载的时候调用
10. onNavigationStateChange function方法 当导航状态发生变化的时候调用
11. renderError function 该方法用于渲染一个View视图用来显示错误信息
12. renderLoagin function 该方法用于渲染一个View视图用来显示一个加载进度指示器
13. startInLoadingState bool
14. url string 设置加载的网页地址
15. allowsInlineMediaPlayback bool 该适合iOS平台,设置决定当使用HTML5播放视频的时候在当前页面位置还是使用原生的全屏播放器播放,默认值false。【注意】.为了让视频在原网页位置进行播放,不光要设置该属性为true,还必须要设置HTML页面中video节点的包含webkit-playsinline属性
16. bounces bool 该适合iOS平台 设置是否有界面反弹特性
17. domStorageEnabled bool 该适合Android平台 该只适合于Android平台,用于控制是否开启DOM Storage(存储)
18. javaScriptEnabled bool 该适合于Android平台,是否开启javascript,在iOS中的WebView是默认开启的
19. onShouldStartLoadWithRequest function 该适合iOS平台,该允许拦截WebView加载的URL地址,进行自定义处理。该方法通过返回true或者falase来决定是否继续加载该拦截到请求
20. scalesPageToFit bool 该适合iOS平台 用于设置网页是否缩放自适应到整个屏幕视图以及用户是否可以改变缩放页面
21. scrollEnabled bool 该适合iOS平台 用于设置是否开启页面滚动
# (三)实战实例
上面我已经对于WebView组件的基本介绍以及相关属性方法做了讲解,下面我们用几个实例来演示一下WebView组件的使用。
3.1.先演示一个WebView组件最基本的使用方法,直接加载一个网页,具体代码如下:
~~~
'use strict';
import React, {
AppRegistry,
Component,
StyleSheet,
Text,
View,
WebView,
} from'react-native';
var DEFAULT_URL = 'http://www.lcode.org';
var WebViewDemo =React.createClass({
render: function() {
return (
<View style={{flex:1}}>
<Textstyle={{height:40}}>简单的网页显示</Text>
<WebViewstyle={styles.webview_style}
url={DEFAULT_URL}
startInLoadingState={true}
domStorageEnabled={true}
javaScriptEnabled={true}
>
</WebView>
</View>
);
},
});
var styles =StyleSheet.create({
webview_style:{
backgroundColor:'#00ff00',
}
});
AppRegistry.registerComponent('WebViewDemo',() => WebViewDemo);
~~~
运行效果截图如下:
![](https://box.kancloud.cn/2016-02-29_56d3fc09e2982.jpg)
3.2.WebView加载本地的HTML静态字符串,具体代码如下:
~~~
'use strict';
import React, {
AppRegistry,
Component,
StyleSheet,
Text,
View,
WebView,
} from'react-native';
var DEFAULT_URL = 'http://www.lcode.org';
const HTML = `
<!DOCTYPEhtml>\n
<html>
<head>
<title>HTML字符串</title>
<metahttp-equiv="content-type" content="text/html;charset=utf-8">
<meta name="viewport"content="width=320, user-scalable=no">
<style type="text/css">
body {
margin: 0;
padding: 0;
font: 62.5% arial, sans-serif;
background: #ccc;
}
h1 {
padding: 45px;
margin: 0;
text-align: center;
color: #33f;
}
</style>
</head>
<body>
<h1>加载静态的HTML文本信息</h1>
</body>
</html>
`;
var WebViewDemo =React.createClass({
render: function() {
return (
<View style={{flex:1}}>
<WebViewstyle={styles.webview_style}
html={HTML}
startInLoadingState={true}
domStorageEnabled={true}
javaScriptEnabled={true}
>
</WebView>
</View>
);
},
});
var styles =StyleSheet.create({
webview_style:{
backgroundColor:'#00ff00',
}
});
AppRegistry.registerComponent('WebViewDemo',() => WebViewDemo);
~~~
运行效果截图如下:
![](https://box.kancloud.cn/2016-02-29_56d3fc0a30418.jpg)
# (四)最后总结
今天我们主要学习一下WebView组件的基本介绍和实例演示使用,具体还有更加详细的使用方法会在后面进阶中继续更新的。大家有问题可以加一下群React Native技术交流群(282693535)或者底下进行回复一下。
尊重原创,转载请注明:From Sky丶清([http://blog.csdn.net/developer_jiangqq](http://blog.csdn.net/developer_jiangqq)) 侵权必究!
关注我的订阅号(codedev123),每天分享移动开发技术(Android/IOS),项目管理以及博客文章!(欢迎关注,第一时间推送精彩文章)
![](https://box.kancloud.cn/2016-02-29_56d3fbf75e010.jpg)
关注我的微博,可以获得更多精彩内容
[![](https://box.kancloud.cn/2016-02-29_56d3fc00eb890.png)](http://weibo.com/u/1855428195?s=6uyXnP)
- 前言
- React Native For Android环境配置以及第一个实例(1)
- React Native开发IDE安装及配置(2)
- React Native应用设备运行(Running)以及调试(Debugging)(3)
- React Native移植原生Android项目(4)
- React Native进行签名打包成Apk(5)
- React Native库版本升级(Upgrading)与降级讲解(6)
- React Native控件之View视图讲解(7)
- React Native配置运行官方例子-初学者的福音(8)
- React Native控件之Text组件讲解(9)
- React Native控件之Image组件讲解与美团首页顶部效果实例(10)
- TextInput组件讲解与QQ登录界面实现(11)
- ProgressBarAndroid进度条讲解(12)
- DrawerLayoutAndroid抽屉导航切换组件讲解(13)
- ScrollView组件讲解(14)
- ToolbarAndroid工具栏控件讲解以及使用(15)
- Switch开关与Picker选择器组件讲解以及使用(16)
- ViewPagerAndroid讲解以及美团首页顶部效果实例(17)
- Touchable*系列组件详解(18)
- React Native专题文章讲解,不断更新中.....
- ListView组件讲解以及最齐全实例(19)
- 超详细Windows版本编译运行React Native官方实例UIExplorer项目(多图慎入)
- React Native超棒的LayoutAnimation(布局动画)
- PullToRefreshViewAndroid下拉刷新组件讲解(20)
- RefreshControl组件详解(21)
- WebView组件详解以及实例使用(22)