【React Native开发】React Native控件之WebView组件详解以及实例使用(22)

转载请标明出处:

http://blog.csdn.net/developer_jiangqq/article/details/50676379

本文出自:【江清清的博客】

(一)前言

【好消息】个人网站已经上线运行,后面博客以及技术干货等精彩文章会同步更新,请大家关注收藏:http://www.lcode.org

今天我们一起来看一下WebView组件讲解以及使用实例

刚创建的React Native技术交流群(282693535),欢迎各位大牛,React Native技术爱好者加入交流!同时博客左侧欢迎微信扫描关注订阅号,移动技术干货,精彩文章技术推送!

该WebView组件进行创建渲染一个原生的WebView,进行加载一个网页。

(二)属性方法

  1. 继承可以使用View组件的所有属性和Style(具体查看:http://facebook.github.io/react-native/docs/view.html#contenthttp://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);

运行效果截图如下:

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);

运行效果截图如下:

(四)最后总结

今天我们主要学习一下WebView组件的基本介绍和实例演示使用,具体还有更加详细的使用方法会在后面进阶中继续更新的。大家有问题可以加一下群React Native技术交流群(282693535)或者底下进行回复一下。

尊重原创,转载请注明:From Sky丶清(http://blog.csdn.net/developer_jiangqq) 侵权必究!

关注我的订阅号(codedev123),每天分享移动开发技术(Android/IOS),项目管理以及博客文章!(欢迎关注,第一时间推送精彩文章)

关注我的微博,可以获得更多精彩内容

时间: 2024-10-12 22:05:38

【React Native开发】React Native控件之WebView组件详解以及实例使用(22)的相关文章

第二章 控件架构与自定义控件详解 + ListView使用技巧 + Scroll分析

1.Android控件架构下图是UI界面架构图,每个Activity都有一个Window对象,通常是由PhoneWindow类来实现的.PhoneWindow将DecorView作为整个应用窗口的根View,DecorView将屏幕分成两部分:TitleView和ContentView.ContentView实际上是一个FrameLayout,里面容纳的就是我们在xml布局文件中定义的布局. 为什么调用requestWindowFeature()方法一定要在setContentView()方法调

ListView(1)控件架构与ArrayAdapter详解

ListView是Android开发中比较常用的一个组件,它以列表的形式展示信息,并能根据信息的长度自适应显示.比如说我们手机里的通讯录就用到了ListView显示联系人信息.在大量的场合下,我们都需要使用这个控件.虽然在Android 5.0时代,RecyclerView在很多地方都在逐渐取代ListView,但ListView的使用范围依然非常的广泛.我们也不能跳过ListView直接去学习RecyclerView,对ListView的透彻理解是十分有必要的. 首先来看ListView在Vi

使用appearance proxy定制控件的默认外观(详解)

控件的外观,受到tint color,background image, background color等属性的共同影响,通常要修改某个控件对象的外观,就去调用上面属性的相关setter方法(或者其他可以修改它们的方法)就可以了.但是,如果希望整个app中的控件都保持一致的风格,比如所有button的风格(指的是大小,背景图,形状等)都一样,那么一个一个去重复设置每个button的风格,就显得太麻烦了.如果可以给Button类设定一个默认外观,就方便多了.appearance proxy就可以

Android 控件架构与自定义控件详解

架构: PhoneWindow 将一个 DecorView 设置为整个应用窗口的根 View,这里面所有 View 的监听事件,都通过 WindowManagerService 来接收.DecorView 分为 TitleView 和 ContentView,ContentView 是一个 ID 为 content 的 FrameLayout 在 onCreate() 方法中调用 setContentView() 方法后,ActivityManagerService 会回调onResume() 

OpenLayers 之 控件(control)详解

每一个地图应用都应该有一些工具方便用户控制地图的行为,比如缩放,全屏,坐标控件等等,在 OpenLayers 中怎么添加这些工具呢?下面我给大家介绍一下 OpenLayers 中包含的控件种类,并介绍其使用方法.对控件的定制化,和对 OpenLayers 增加控件和优化控件等超出了本文范围. 一.control 类 OpenLayers 中的控件是由 control 类定义的,这是一个虚基类,不负责实例化特定的控件,它的主要作用是让其他具体的种类的控件类实现继承.OpenLayers 中包含的控

Android控件架构与自定义控件详解(二)——自定义View

在自定义View时,我们通常会去重写onDraw()方法来绘制View的显示内容.如果该View还需要使用wrap_content属性,那么还必须重写onMeasure()方法.另外,通过自定义attrs属性,还可以设置新的属性配置值. 在View中通常有一些比较重要的回调方法. onFinishInflate():从XML加载组件后回调. onSizeChanged(;:组件大小改变时. onMeasure():回调该方法来进行测量. onLayout():回调该方法来确定显示的位置. onT

Android控件架构与自定义控件详解

基于 <android 群英传 >的读书笔记 View的测量-onMeasure() 测量的模式可以有以下三种: EXACTLY 即精确值模式,当我们将控件的layout_width属性或layout_height属性指定为具体参数值时,系统使用的就是EXACTLY AT_MOST 即最大值模式,当控件的layout_width属性或layout_hright属性是warp_content时,控件大小一般随着控件的子控件或内容的变化而变化,此时控件尺寸只要不超过父控件允许的尺寸即可 UNSPE

javascript控件开发之工具栏控件

在前几篇的基础上,本篇将开发工具栏控件,工具栏控件一般包括三部份, 1.toolBar控件,简单说就是工具栏容器, 2.toolButton控件,即工具栏上的按钮控件,该按钮控件包括图标和文字两部份, 3.则是分隔符控件,一般分隔符控件也是在toolButton控件基础上引申出来的, 为了简单易学,我们这里直接用上一篇的控件作为toolBar控件使用,也就是我们这次编写出来的toolButton控件直按放一Panel控件上, 首先在component\ui\文件夹下添加控件文件,com.ui.t

IOS开发自定义CheckBox控件

IOS本身没有系统的CheckBox组件,但是实际开发中会经常用到,所以专门写了一个CheckBox控件,直接上代码 效果图: UICheckBoxButton.h文件如下: #import #import "Common.h" @interface UICheckBoxButton : UIControl { UILabel *label; UIImageView *icon; BOOL checked; id delegate; } @property (retain, nonat