1. 程式人生 > >React Native開發之——元件WebView

React Native開發之——元件WebView

前言

在開發Android的時候,一般我們會有一些載入網頁的需求,或者執行一些JavaScript,我們都知道在Android中實現這個功能的控制元件是WebView,在ReactNative中也有實現此類需求額的元件,它的名字也是WebView。那麼今天的這篇文章就來詳細說說在ReactNative WebView的使用。

元件WebView

屬性和方法

主要屬性

  • source:在 WebView 中載入一段靜態的 html 程式碼或是一個 url(還可以附帶一些 header 選項)
  • automaticallyAdjustContentInsets:設定是否自動調整內容。格式:bool
  • contentInset:設定內容所佔的尺寸大小。格式:{top:number,left:number,bottom:number,right:number}
  • injectJavaScript:當網頁載入之前注入一段 js 程式碼。其值是字串形式。
  • startInLoadingState:是否開啟頁面載入的狀態,其值為 true 或者 false。
    -bounces(僅iOS):回彈特性。預設為 true。如果設定為 false,則內容拉到底部或者頭部都不回彈。
  • scalesPageToFit(僅iOS):用於設定網頁是否縮放自適應到整個螢幕檢視,以及使用者是否可以改變縮放頁面。
  • scrollEnabled(僅iOS):用於設定是否開啟頁面滾動。
  • domStorageEnabled(僅Android):用於控制是否開啟 DOM Storage(儲存)。
  • javaScriptEnabled(僅Android):是否開啟 JavaScript,在 iOS 中的 WebView 是預設開啟的。

主要方法

  • onNavigationStateChange:當導航狀態發生變化的時候呼叫。
  • onLoadStart:當網頁開始載入的時候呼叫。
  • onError:當網頁載入失敗的時候呼叫。
  • onLoad:當網頁載入結束的時候呼叫。
  • onLoadEnd:當網頁載入結束呼叫,不管是成功還是失敗。
  • renderLoading:WebView元件正在渲染頁面時觸發的函式,只有 startInLoadingState 為 true 時該函式才起作用。
  • renderError:監聽渲染頁面出錯的函式。
  • onShouldStartLoadWithRequest(僅iOS):該方法允許攔截 WebView 載入的 URL 地址,進行自定義處理。該方法通過返回 true 或者 falase 來決定是否繼續載入該攔截到請求。

程式碼例項

import React, {Component} from 'react';
import 
{
    StyleSheet,
    View,
    Dimensions,
    WebView
} from 'react-native';
//獲取裝置的寬度和高度
var 
{
    height: deviceHeight,
    width: deviceWidth
} = Dimensions.get('window');
type Props = {};
export default class App extends Component<Props> 
{
    render() 
    {
        return 
            (
            <View style={styles.container}>
            <WebView
                     source={{uri: 'http://www.baidu.com',method: 'POST'}}
                     style={{width: deviceWidth, height: deviceHeight}}
                     onLoadEnd={this.onLoadEnd}>
            </WebView>
            </View>
            );
    }
}

const styles = StyleSheet.create({
container: {flex: 1,},
});

效果

其他

相關推薦

React Native開發——元件WebView

前言在開發Android的時候,一般我們會有一些載入網頁的需求,或者執行一些JavaScript,我們都知道在Android中實現這個功能的控制元件是WebView,在ReactNative中也有實現此類需求額的元件,它的名字也是WebView。那麼今天的這篇文章就來詳細說說

React Native 筆記元件

React Native的元件 什麼是React Native 元件? React Native 都有哪些元件? 建立元件的三種方式 [元件的生命週期](https://react.docschina.org/docs/react-compone

react-native開發專案連線夜神模擬器步驟(window)

這裡是window為準, 因為mac電腦 夜神模擬器暫時沒有搖一搖功能 連線夜神模擬器 adb.exe connect 127.0.0.1:62001 返回 connected to 127.0.0.1:62001 說明 連線成功!!!! cmd 開啟命令編輯器 進入專案目錄 win

React Native 開發 IDE 選型和配置

原文連結: http://www.infoq.com/cn/articles/react-native-ide?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&

React-Native開發BUG 總結

本部落格將詳細記錄在React-Native開發中所遇到的各種問題以及其解決方法。個人感覺,React-Native開發初期真的是一腳一個大坑,分分鐘被虐趴下。不說了,直接上Bug1、在Windows下

React Native開發快速入門React

前言 這篇文章,是接著之前的一篇入門文章寫的(雖然已經過去大半年了),本文的受眾仍然是React小白,熟悉React的同學可以不看了。上一篇文章連結: 上一篇文章主要介紹了JS的語言基礎和React的component生命週期。本文會接著上一篇文章,繼續

React Native開發IDE(Atom+Nuclide)安裝,執行,除錯

歡迎Follow我的Github,部落格會同步在Github的Blog倉庫更新。也可以關注CSDN部落格的React Native分類 前言 工欲善其事,必先利其器 好像在哪聽到一句話,”滿級程式設計師不需要IDE,不需要自動補全,不需要靜

React Native開發路(一)

很久以前,就是接觸過RN,搭建了RN的開發環境,弄了個Hello Word的demo出來,就沒有再去學習了,因為工作用不上,自己的CSS和JS都是不會,所以提不起興趣來。 最近一個機緣,一個哥們兒拉我去做專案,APP不用原生開發,用RN來寫兩端的App。朋友叫

ReactNative開發 Could not connect to development server(Android)解決方法

寫在最前面:    本來,我是有一篇部落格 RN開發之BUG 總結(持續更新) 來專門總結自己在React-Native開發中遇到的各種BUG 以及其解決辦法的。但是,由於 Could not conn

React-Native開發react-navigation自定義元件Counter

1 前言 我們知道RN中任何介面元素都可以看成元件,小到一個按鈕,大到一個頁面。RN開發就是不停的開發元件和使用元件,並讓他們協同工作,這樣高效率協同的執行起來,這樣就能完成一個APP的功能了 在實際的開發中,我們經常需要自定義一些滿足我們專案開發的自定義元件,類似於Android

React Native開發React Native控制元件Image元件講解與美團首頁頂部效果例項(10)

轉載請標明出處:(一)前言        【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org      今天我們一起來看一下Image元件的相關使用講解以及模仿實現一下美團首頁頂部分類的效果。具體環境搭建以及相關配置的請檢視之前

React Native開發React Native控制元件TextInput元件講解與QQ登入介面實現(11)

轉載請標明出處:(一)前言      【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org       今天我們一起來看一下文字輸入框TextInput元件的相關使用講解以及模仿實現一下QQ登入介面的效果。具體環境搭建以及相關配置

React Native開發React Native控制元件ListView元件講解以及最齊全例項(19)

轉載請標明出處:(一)前言        【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org今天我們一起來看一下ListView元件的使用詳解以及具體事例剛建立的React Native技術交流3群(496508742),Rea

React Native開發React Native控制元件View檢視講解(7)

轉載請標明出處:(一)前言      【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org       現在幾講我們對於R

React Native開發React Native控制元件RefreshControl元件詳解(21)

轉載請標明出處:(一)前言         【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org        今天我們一起來看一下RefreshControl下拉重新整理元件講解以及使用例項剛建立的React Native技術交

React Native開發React Native控制元件DrawerLayoutAndroid抽屜導航切換元件講解(13)

轉載請標明出處:(一)前言      【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org       今天我們一起來看一

React Native開發React Native控制元件Switch開關與Picker選擇器元件講解以及使用(16)

轉載請標明出處:(一)前言       【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org       今天我們一起來看

(React-Native 學習七) Rn混合開發--Activity直接引用React native元件

簡介: Activity 和 ReactNative 混合開發時,有時我們需要直接引入已經寫好的reactNative js元件。此時就需要我們對Activity如何引用ReactNative進行了解。 本篇介紹了Activity如何直接應用一個寫好的Rea

React Native開發React Native控件ProgressBarAndroid進度條解說(12)

ice 發現 來講 top 文章 func dev all ios 轉載請標明出處:http://blog.csdn.net/developer_jiangqq/article/details/50596367本文出自:【江清清的博客】(一)前言 【好消息】

React-Native開發react-navigationAndroid的打包與釋出

1前言 RN的開發中正式釋出前需要打包與簽名,然後才能上架各家應用市場。打包需要將js與圖片資原始檔打包進apk檔案中,生成index.android.bundle與index.android.bundle.meta檔案。下面介紹RN開發中打包APK的主要步驟,IOS沒研究過,不再本