react-native <WebView>内部网页跳转并返回上一级
来源:互联网 发布:c盘里面的windows.old 编辑:程序博客网 时间:2024/06/05 19:07
使用Rn的WebView控件时,遇到的网页内部跳转如何返回的问题。
- 点原生Back键返回;
- 点左上角返回键返回;
上代码
import React, {Component} from 'react';import {StyleSheet, Platform, View, WebView, BackAndroid} from 'react-native';import * as CommonUI from 'rncommonui';import Separator from '../../common/SeperatorLine';var WEB_URL = 'http://www.baidu.com';var WEB_VIEW_REF = 'webview';export default class AboutDeveloperPage extends Component { constructor(props) { super(props); this.state = { webUrl: WEB_URL, scalesPageToFit: false, }; // 添加返回键监听 this.addBackAndroidListener(this.props.navigator); } render() { return ( <View style={{backgroundColor: '#000000', flex: 1}}> <CommonUI.NaviBar title="关于开发者" onLeft={this.state.backButtonEnabled?this.goBack:null}/> <Separator /> <WebView ref={WEB_VIEW_REF} style={styles.webView} source={{uri: this.state.webUrl}} scalesPageToFit={this.state.scalingEnabled} onNavigationStateChange={this.onNavigationStateChange}/> </View> ); } goBack = () => { this.refs[WEB_VIEW_REF].goBack(); }; // 监听返回键事件 addBackAndroidListener(navigator) { if (Platform.OS === 'android') { BackAndroid.addEventListener('hardwareBackPress', this.onBackAndroid); } } onBackAndroid = ()=> { if (this.state.backButtonEnabled) { this.refs[WEB_VIEW_REF].goBack(); return true; } else { return false; } }; onNavigationStateChange = (navState)=> { this.setState({ backButtonEnabled: navState.canGoBack, }); };}
点原生Back键返回:
1.首先要添加backandroid监听
// 监听返回键事件 addBackAndroidListener(navigator) { if (Platform.OS === 'android') { BackAndroid.addEventListener('hardwareBackPress', this.onBackAndroid); } }
用以实现自定义onBackAndroid回调方法。
onBackAndroid = ()=> { if (this.state.backButtonEnabled) { this.refs[WEB_VIEW_REF].goBack(); return true; } else { return false; } };
返回true代表不调用默认返回功能,返回false代表退出当前界面。
this.refs[WEB_VIEW_REF].goBack();//回退<WebView>控件内部跳转的页面。
返回WebView界面还是退出当前页取决于
this.state.backButtonEnabled//代表是否能回退
WebView内部跳转后状态改变时回调:
onNavigationStateChange = (navState)=> { this.setState({ backButtonEnabled: navState.canGoBack, }); };
改变this.state.backButtonEnabled状态。
点左上角返回键返回
<CommonUI.NaviBar title="关于开发者" onLeft={this.state.backButtonEnabled?this.goBack:null}/>
关键是onLeftfang方法定义,null代表点击直接返回当前页。
this.goBack方法用于WebView内部页面返回。
goBack = () => { this.refs[WEB_VIEW_REF].goBack(); };
阅读全文
0 0
- react-native <WebView>内部网页跳转并返回上一级
- Fragment中WebView实现返回上一级网页功能
- WebView返回上一级页面
- 让WebView可以返回上一级
- React-Native WebView 测量网页高度
- React Native 原生RN嵌套webView,并自适应高度
- React Native Webview使用
- ios Webview上返回上一个网页
- react-native统一入口界面,并实现页面的跳转
- WebView实现内部跳转
- react-native 页面跳转
- React-Native schema跳转
- js/jquery 返回上一级页面并刷新
- js 浏览器 返回上一级页面并刷新
- 滑动返回上一级
- php返回上一级
- react-native之js事件发送并得到返回结果
- 【React native】Webview的使用
- 安装mysql遇到服务已经存在的错误
- ios------app跳转到appStore评分
- 认识Java 反射机制
- Tornado
- java 注解理解
- react-native <WebView>内部网页跳转并返回上一级
- python在子线程中使用pyHook监控键盘无效,需要加pythoncom的初始化
- Token原理以及应用
- POJ
- Bootstrap概述
- 指针数组,数组指针,二维数组的动态内存分配
- [bzoj1651][Usaco2006 Feb]Stall Reservations 专用牛棚
- 企业如何迎战巨量 DDoS 攻击?轻松两招有备无患
- CTF writeup: rbash 逃脱方法