实现在WebView中返回上一级
代码
import React, {Component} from 'react';
import {Platform, View, WebView, BackHandler,Dimensions,StyleSheet,Text,ToastAndroid} from 'react-native';
var WEB_URL = "https://www.ly.com/FlightQuery.aspx";
var WEB_VIEW_REF = 'webview';
const {width, height} = Dimensions.get('window');
export default class App extends Component {
constructor(props) {
super(props);
this.state = {
webUrl: WEB_URL,
scalesPageToFit: false,
};
// 添加返回键监听
this.addBackHandlerListener(this.props.navigator);
}
render() {
return (
<View style={styles.container}>
<WebView
style={{width:width,height:height-20,backgroundColor:'white'}}
ref={WEB_VIEW_REF}
source={{uri: this.state.webUrl}}
javaScriptEnabled={true}//是否开启js
domStorageEnabled={true}//是否开启存储
scalesPageToFit={true}//用户是否可以改变页面
startInLoadingState={true}
onNavigationStateChange={this.onNavigationStateChange}
renderLoading={() => {
return <View style={styles.conText}><Text style={styles.txt}>正在加载Loading...</Text></View>
}}
/>
</View>
);
}
// 监听返回键事件
addBackHandlerListener() {
if (Platform.OS === 'android') {
BackHandler.addEventListener('hardwareBackPress', this.onBackHandler);
}
}
onBackHandler = ()=> {//返回true代表不调用默认返回功能,返回false代表退出当前界面。
if (this.state.backButtonEnabled) {
this.refs[WEB_VIEW_REF].goBack();//回退<WebView>控件内部跳转的页面
return true;
} else {
return false;
}
};
onNavigationStateChange = (navState)=> {//WebView内部跳转后状态改变时回调:
this.setState({
backButtonEnabled: navState.canGoBack,//改变this.state.backButtonEnabled状态
});
};
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#f2f2f2',
//paddingTop:20,
},
conText:{
flex: 1,
alignItems: 'center',
justifyContent: 'center'
},
txt:{
fontSize:20,
}
});
实现在WebView中返回上一级的更多相关文章
- UIWebview加载H5界面侧滑返回上一级
一.UIWebview的发现 问题发现:当UIWebview王深层次点击的时候,返回时需要webView执行goBack方法一级一级返回,这样看到的webView只是在该界面执行刷新,并看不到类似iO ...
- 类似IOS的滑动返回上一级,SwipeBackLayout-android的滑动返回类库
最近,公司在开发App的需求中增加了一个新的需求,要在android的页面中增加向右滑动的时候返回上一级页面.我刚知道这个需求的时候,感觉有点坑,可能设计那边最近接触到知乎的客户端或者是IOS的滑动可 ...
- Web 在线文件管理器学习笔记与总结(11)获取文件夹信息 (12)返回上一级操作
(11)获取文件夹信息 文件夹没有修改操作. index.php: <?php require 'dir.func.php'; require 'file.func.php'; require ...
- Android 使用SwipeBackLayout实现滑动返回上一级页面——实战来袭
我们知道.APP在设计上习惯性的把返回button放在屏幕的左上角,那么,在非常多时候(尤其是大屏幕手机),操作改返回button,就会有诸多不便了.为了更加方便实现"返回"功能. ...
- Android 重写物理返回键,在h5页面中返回上一个界面
实现:Activity中放置webview,跳转到h5界面,点击返回键,不退出h5界面,而是返回上一个h5界面 /** * 改写物理按键--返回的逻辑,希望浏览的网页后退而不是退出浏览器 * @par ...
- JS写返回上一级
应产品需求,自己的网站上要有返回上一级的需求,几经周折,做个小总结. (1): $("XX").on("click",function(){ wind ...
- 织梦dedecms返回上一级链接代码
如题:织梦dede手机页面,如果我进入了下一级页面,想回上一级,<a href="xx">该用什么标签? 用JS实现,代码如下 <a href="jav ...
- git bash返回上一级目录
YITU-LIUMZ+Administrator@yitu-liumz MINGW64 ~/learngit/gitskills (dev)$ cd ..\ 注意 cd 后面有空格 然后就会弹出一个 ...
- JavaScript返回上一页和返回上一级页面并刷新
JavaScript返回上一页和刷新当前页 window.history.go(-1); //返回上一页 window.history.back(); //返回上一页 //如果要强行刷新的话就是:wi ...
随机推荐
- JavaJ2EE相关知识整理
1.Servlet的生命周期 在Web容器中,Servlet主要经历4个阶段 ①.加载Servlet:当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servle ...
- JS 超类和子类
此篇由别的大神的博客与<javascript高级程序设计>一书整理而来 原博客地址:https://hyj1254.iteye.com/blog/628555 看到javascript高级 ...
- labview web发布局域网内访问
按照labview的web访问具体步骤操作完之后,把电脑的网络要设置在局域网环境下,网络要处于专用网络中,就可以进行局域网内访问
- 学号20175212 《Java程序设计》第7周学习总结
学号20175212 <Java程序设计>第7周学习总结 教材学习内容总结 8.1.String类 可以使用String类声明对象并创建对象,例如: String s = new Stri ...
- 前端经典面试题之CSS实现三栏布局,左右宽度固定,中间宽度自适应
前端常问的面试题,题目:假设高度一定,请写出三栏布局,左右宽度300px,中间自适应. 看到这里我希望你能停下来思考几分钟, 1分钟~2分钟~3分钟~4分钟~5分钟! 好了,那么你想出了几种答案呢? ...
- python之json序列
# from urllib import request## f=request.urlopen("http://123.178.101.29:81/xs_main.aspx?xh=2015 ...
- Delphi下的WinSock编程
一.定址 要通过Winsock建立通信,必须了解如何利用指定的协议为工作站定址.Winsock 2引入了几个新的.与协议无关的函数,它们可和任何一个地址家族一起使用:但是大多数情况下,各 ...
- js中new函数后带括号和不带括号的区别
用new创建构造函数的实例时,通常情况下new 的构造函数后面需要带括号(譬如:new Parent()). 有些情况下new的构造函数后带括号和不带括号的情况一致,譬如: function Pare ...
- 运行go服务器后台挂起(不看调试信息)
cd程序目录,shell输入go run+项目,接着键盘组合输入CTRL+Z,后台挂起进程. 要结束服务器,则输入fg,查看被挂起的go服务器进程,接着键盘组合输入CTRL+C,中断服务器进程. 此外 ...
- react系列笔记:第三记-redux-saga
github : https://github.com/redux-saga/redux-saga 文档:https://redux-saga.js.org/ redux-saga: redux中间 ...