Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
821 views
in Technique[技术] by (71.8m points)

how do I make my react native expo webview - android back button work?

I made a simple hybrid app with react-native expo app for my website. right now it is only for android. As you can see, it simply shows my website from webview and if you click out link, browser opens but inside link doesn't.

But the problem is if I click android back button, app just exit. How can I made back button available if it clicks, webview goes back?

import React, { Component } from 'react';
import { WebView } from 'react-native-webview';
import * as WebBrowser from 'expo-web-browser';
import { Button, Text, StyleSheet, StatusBar, View } from "react-native";


export default class App extends React.Component {
  webview = null;

  render() {
    return (
      <>
      <StatusBar hidden={true} /> 
        <WebView
          ref={(ref) => (this.webview = ref)}
          source={{ uri: 'http://www.mysiteurl.com/' }}
          onNavigationStateChange={this.handleWebViewNavigationStateChange}
        />
      </>      
    );
  }

  handleWebViewNavigationStateChange = (newNavState) => {
    const { url } = newNavState;
    if (!url) return;

    // one way to handle a successful form submit is via query strings
    if (!url.includes('mysiteurl')) {
      this.webview.stopLoading();
      WebBrowser.openBrowserAsync(url);
      // maybe close this view?
    }
  };
}

Thanks!

question from:https://stackoverflow.com/questions/65929196/how-do-i-make-my-react-native-expo-webview-android-back-button-work

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...