转载请注明出处:这里写链接内容

今天是10月份的最后一天,我加了3个月来的第一个班,挤出了这篇。

废话不多先安利,然后继续学习 RN

有好东西都往里面丢,努力做好归纳

https://github.com/ddwhan0123/Useful-Open-Source-Android

demo还是在上次的ui,只是加了新功能,回退键!


效果图可以看http://blog.csdn.net/ddwhan0123/article/details/52913765

这边就不重复贴了

BackAndroid

理论介绍是api扣来的:

监听硬件的back键操作。如果没有任何监听函数,或者监听函数的返回值不是true,则会调用默认的back键功能来退出应用。

默认是退出应用

有三个常用的方法

static exitApp()

static addEventListener(eventName: BackPressEventName, handler:

Function) #

static removeEventListener(eventName: BackPressEventName, handler:

Function)

看名字就很好理解,分别是

退出APP

增加监听事件

移除监听

exitApp很简单,直接调用即可

两个listener方法需要传入2个参数,1为”tag效果的BackPressEventName”,2为具体实现逻辑的方法。

这里为什么说是类似于tag的BackPressEventName可以看:http://www.jianshu.com/p/44e415a3cb0b 解释的非常棒,图文并茂


Platform

在制作跨平台的App时,多半会碰到针对不同平台编写不同代码的需求。

在不用分包的情况下 可以用Platform来做手机的判断,诸如我要判断是ios还是安卓

if (Platform.OS === 'android') {
       //安卓的事
    }

if (Platform.OS === 'ios') {
       //ios的事
    }

安卓还可以用Platform.Version来判断sdk等级

if(Platform.Version === 21){
  console.log('Running on Lollipop!');
}

变化大多在main.android.js

import React, {Component, Navigator} from 'react';
import {
    AppRegistry,
    View,
    StyleSheet,
    Text,
    BackAndroid,
    Platform
} from 'react-native';
var titleStr;
var _navigator;
var name;

BackAndroid.addEventListener('hardwareBackPress', function() {
    if (_navigator == null) {
        return false;
    }
    if (_navigator.getCurrentRoutes().length === 1) {
        return false;
    }
    if (Platform.OS === 'android') {
        _navigator.pop();
    }
    return true;
});

export default class Main extends Component {
    constructor(props) {
        super(props);
        _navigator = this.props.navigator;
        titleStr = this.props.titleStr;
        name = this.props.name;
    }
    render() {
        return (
            <View>
                <Text>{titleStr}
                    页面 获得的参数: value = {name}</Text>
            </View>
        );
    }
}

AppRegistry.registerComponent('Main', () => Main);

在这个页面我们设置的返回键的监听事件,然后判断了只在上一页有页面,并且导航不为空的时候才做返回行为,不然直接退出 app(默认)

这次我把navigator对象”带来带去”,让他很好的管理者,页面集合。

这篇内容比较简单,但是打好基础也很重要哦!!

源码地址:https://github.com/ddwhan0123/ReactNativeDemo (有点包结构问题,看着调就行,操作起来不复杂)

相关传送门:http://reactnative.cn/post/480

混合开发的大趋势之一React Native之页面跳转(2)+物理返回+特定平台代码的更多相关文章

  1. 混合开发的大趋势之一React Native之页面跳转

    转载请注明出处:王亟亟的大牛之路 最近事情有点多,没有长时间地连贯学习,文章也停了一个多礼拜,愧疚,有时间还是继续学习,继续写! 还是先安利:https://github.com/ddwhan0123 ...

  2. 混合开发的大趋势之一React Native与Android联调

    转载请注明出处:王亟亟的大牛之路 先安利,有空我都会更,看到的好东西都会放进来:https://github.com/ddwhan0123/Useful-Open-Source-Android 公司某 ...

  3. 混合开发的大趋势之一React Native之简单的登录界面

    转载请注明出处:王亟亟的大牛之路 这些天都在学习RN这部分吧,然后写了个简单的登陆业务,从"实战"中讲解吧 还是继续安利:https://github.com/ddwhan0123 ...

  4. 混合开发的大趋势之一React Native手势行为那些事

    转载请注明出处:王亟亟的大牛之路 最近项目部分模块重构,事情有点多,学习进度有所延缓,外加一直在吸毒(wow你懂的),导致好多天没发问了,其实这部分知识月头就想写了,一直没补. 话不多说先安利:htt ...

  5. 混合开发的大趋势之一React Native之Image (脑动理解)

    文章是宝宝自己写的,你可以转走,标明哪来的就行王亟亟的大牛之路 国庆这些天要么旅游要么WOW,感觉整个人都废了.. 直接从黄种人晒成了非洲大酋长..然而还是无橙,这礼拜要做7天,昨天把单元测试的东西整 ...

  6. react native 之页面跳转

    第一章  跳转的实现 1.component  中添加这行代码 <View style={styles.loginmain}> <Text style={styles.loginte ...

  7. 混合开发的大趋势之 一个Android程序员眼中的 React.js 块级作用域 和 let

    转载请注明出处:王亟亟的大牛之路 最近都有事干然后,快到月底了这个月给CSDN的博文也就两篇,想想也蛮多天没更了,那就来一篇. 老规矩,先安利:https://github.com/ddwhan012 ...

  8. 混合开发的大趋势之 一个Android程序员眼中的 React.js 箭头函数,const, PropTypes

    转载请注明出处:王亟亟的大牛之路 昨天写了篇React.js的开头之作,讲了讲块级作用域和let,先安利:https://github.com/ddwhan0123/Useful-Open-Sourc ...

  9. 移动开发发展方向-----Hybird混合开发3大方案

    移动开发发展方向-----Hybird混合开发3大方案

随机推荐

  1. python基础-第六篇-6.2模块

    python之强大,就是因为它其提供的模块全面,模块的知识点不仅多,而且零散---一个字!错综复杂 没办法,二八原则抓重点咯!只要抓住那些以后常用开发的方法就可以了,哪些是常用的?往下看--找答案~ ...

  2. TestLink安装手册

    环境准备 系统CentOS Linux release 7.3.1611 (Core) 搭建LAMP所需的集成包 xampp-linux-x64-7.2.0-0-installer.run 下载地址 ...

  3. Python并行编程(九):线程通讯queue

    1.基本概念 当线程之间要共享资源或数据的时候,可能变的非常复杂.Python的threading模块提供了很多同步原语,包括信号量,条件变量,事件和锁.如果可以使用这些原语的话,应该优先考虑使用这些 ...

  4. Python 有什么奇技淫巧?

    知乎上有一个问题:Python 有什么奇技淫巧?其中有各种不按套路出牌的招数,也不乏一些惊为天人的"奇技淫巧",会让你大呼:居然还有这种操作??? 本文就是对日常使用过的或者觉得很 ...

  5. JQuery能够高效地操作页面元素

    关于DOM和CSS的页面元素选择: $("span");     //全部span元素 $("#elem");  //id为elem的元素 $(".c ...

  6. IT开发工程师的悲哀现状和可能前途

    IT开发工程师的悲哀现状和可能前途 本文所指的开发工程师,仅指程序开发人员和以数字电路开发为主的电子工程师.当你选择计算机或者电子.自控等专业进入大学时,你本来还是有机会从事其它行业的,可你毕业时执迷 ...

  7. wpa安装方法

    1.openssl 2.lib 1.1.2 3.wpa lua 编译错误 http://www.blogjava.net/xiaomage234/archive/2013/09/13/404037.h ...

  8. js如何转义和反转义html特殊字符

    “<”如何反转义为“<”,“>”如何反转义为“>”,下面就介绍如何用js来实现这种类似的操作. //HTML转义 function HTMLEncode(html) { var ...

  9. 使用jQuery为文本框、单选框、多选框、下拉框、下拉多选框设值及返回值的处理

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  10. windows的cmd命令切换磁盘路径