Webview in React Native - Convert any website to App using react native Expo 2020

Now you can convert any website to the app using react native Expo in just a minute,

Follow the below code and just go for it.

import * as React from 'react';
import { WebView } from 'react-native-webview';
import { StyleSheet, BackHandler,Text, View,Button} from 'react-native';
import NetInfo from '@react-native-community/netinfo';

export default class App extends React.Component{

      state = {
        backButtonEnabled:false,
        canGoBack: false,
        WEBVIEW_REF:null,
        isConnected:null,
      };

      componentDidMount(){

          NetInfo.isConnected.addEventListener('connectionChange',this._handleConnectivityChange);
          NetInfo.isConnected.fetch().done((ischeck)=>this.setState({isConnected:ischeck}));
          BackHandler.addEventListener('hardwareBackPress', this.backHandler);

      }
      componentWillUnmount(){
          NetInfo.isConnected.removeEventListener("connectionChange",this._handleConnectivityChange);
          BackHandler.removeEventListener('hardwareBackPress', this.backHandler);
      }

      _handleConnectivityChange=()=>
      {
        
        this._handleOpenWebview;
      }


        _handleOpenWebview=()=>
      {
          if(this.state.isConnected==false)
          {
            Alert.alert("Sorry!!,there is no internet connection");
            return;
          }
      }


      backHandler = () => {
          if(this.state.backButtonEnabled) {
            this.state.WEBVIEW_REF.goBack();
              return true;
          }
      }

  
  render() {
    return(
      <WebView
       ref={(webView) => { this.state.WEBVIEW_REF = webView }}
        style={{flex: 1}}
        onNavigationStateChange=
           {(navState)=>this.onNavigationStateChange(navState)}
        source={{uri:"https://www.w3schools.com/"}}
        />);

  }


  onNavigationStateChange(navState) {
    this.setState({
      backButtonEnabled: navState.canGoBack
    });
  }
}



const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',

  },

});





You may like these posts