rn 跳转至html5,ReactNative-从RN端跳转到原生界面

//实现跳转

//可以做一次封装,这里只是展示功能

AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];

app.nav.navigationBarHidden = NO;

[app.nav pushViewController:vc animated:YES];

可以这么做的前提就是在app初始化的时候,rootviewcontroller需要设置为一个导航控制器:

在AppDelegate.m的

- (BOOL)application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

中添加或者修改:

RCTRootView *rootView =

[[RCTRootView alloc] initWithBundleURL:jsCodeLocation

moduleName:@"AwesomeProject"

initialProperties:nil

launchOptions:launchOptions];

//已有的RN界面/模块

rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

SomeViewController *rootViewController = [SomeViewController new];//某个视图控制器

rootViewController.view = rootView;

self.nav = [[UINavigationController alloc]initWithRootViewController:rootViewController];

self.window.rootViewController = self.nav;

self.nav.navigationBarHidden = YES;

RN界面可以看做是属于NavigateController管理的rootVC的View,

这样可以做到原生部分与RN生成的部分相互之间没有额外的干扰,相互跳转不会产生问题,当然,在这种情况下,跳转到原生部分后,开发时的那些Command快捷键就失效了,安卓的情况也是类似,只不过跳转使用的可能是另一个Activity,键盘响应不一样。

这样在RN端 调用某个原生插件的时候,就可以实现跳转了,例如:

[[SCApp loginManager]

login:localUserId

token:localToken

completion:^(NSError *error) {

if(sessionInfo&&sessionInfo[@"toId"]){

SCSession *session = [SCSession session:sessionInfo[@"toId"] type: SCSession TypeP2P];

//初始化SessionViewCongtroller

SCSession ViewController *vc = [[SCSession ViewController alloc] initWithSession:session];

//实现跳转

AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];

app.nav.navigationBarHidden = NO;

[app.nav pushViewController:vc animated:YES];

}else{

UIAlertView *uav = [[UIAlertView alloc]initWithTitle:@"提示" message:@"用户会话已过期" delegate:nil cancelButtonTitle:@"忽略" otherButtonTitles:nil, nil];

[uav show];

}

}];

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 使用期物处理并发

文章目录1. futures.ThreadPoolExecutor2. 期物3. 阻塞型I/O和GIL4. 使用concurrent.futures模块启动进程learning from 《流畅的python》1. futures.ThreadPoolExecutor import os import time import sys import requestsPOP20_CC (CN IN US ID BR PK NG BD RU JP MX PH V…

【linux高级程序设计】(第十三章)Linux Socket网络编程基础 2

BSD Socket网络编程API 创建socket对象 int socket (int __domain, int __type, int __protocol) :成功返回socket文件描述符,失败返回-1. 参数1:socket对象使用的地址簇或协议簇 常用的有PF_LOCAL(本机通信)、PF_INET(IPv4协议簇)、PF_INET6…

数据库中有痣但是有时取不到_农村这种长得像“泥鳅”的鱼,以前没人吃,现在可能有钱都吃不到...

只说真话的农民公众号原创文章,严禁转载在农村中有很多不能叫出名字的花草和野味,它们当中虽然有些长得比较奇怪,名字也比较奇怪,但是却是非常好的疗补食物。有些花草是治疗疾病的良药,有些野味现在也被搬上了酒桌。但…

简述计算机的英语作文,初中计算机的英语作文

初中计算机的英语作文发布时间:2020-04-07在过去的时间里,计算机得到了很大的改进。下面是小编为大家精心整理的关于初中计算机的英语作文,希望能够帮助到你们。The ComputerThe computer is widely used in all phases of society. In indus…

(第三天)函数

定义函数 关键字function用来定义函数。定义函数有两种方法 (1)函数定义表达式 1 var f function(x) { return x1; } (2)函数声明语句 1 function funcname([arg1 [, arg2 [...,argn]]]) { 2 3 } 函数声明语句通常出现在JavaScr…

python 使用 asyncio 包处理并发

文章目录1. 线程与协程对比2. 使用 asyncio 和 aiohttp 下载3. 避免阻塞型调用4. 使用 asyncio.as_completed5. 使用Executor对象,防止阻塞事件循环6. 从回调到期物和协程learn from 《流畅的python》 1. 线程与协程对比 threading import threading import iter…

ai预测占比_2019-2021年中国AI芯片市场预测与展望数据

来源:雪球App,作者: IC咖啡,(https://xueqiu.com/1118999957/139121699)预计未来三年AI芯片市场规模仍将保持50%以上的增长速度,到2019年中国AI芯片市场规模将达到124.1亿元。从细分市场结构来看,云端训练芯…

计算机专业英语第2版郭涛翻译,计算机专业英语

计算机专业英语作  者:郭涛 主编出版时间:2007年01月定  价:21.60I S B N :9787560939209所属分类: 大中专教材 > 研究生/本科/专科教材 &nbsp大中专教材 &nbsp语言学习 > 大学英语 &nbsp语…

ODS与数据仓库

数据仓库是目前主要的数据存储体系。数据仓库之增W.H.Inmon认为,数据仓库是指支持管理决策过程的、面向主题的、集成的、随时间而变的、持久的数据的集合。简单地说,一个数据仓库就一个自数据库的商业应用系统,该数据库的数据来自于其它的运作…

LeetCode 1991. 找到数组的中间位置(前缀和)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的整数数组 nums ,请你找到 最左边 的中间位置 middleIndex (也就是所有可能中间位置下标最小的一个)。 中间位置 middleIndex 是满足 nums[0] nums[1] ... nums[middleIndex-1] n…

mysq命令行导出sql_mysql 命令行导入导出 sql

命令行source 导入数据库:代码如下复制代码1,将要导入的.sql文件移至bin文件下,这样的路径比较方便2,同上面导出的第1步3,进入MySQL:mysql -u 用户名 -p如我输入的命令行:mysql -u root -p (输入同样后会…

计算机应用基础第六章,《计算机应用基础》第六章习题

周南岳版第六章习题及答案《计算机应用基础》教材第6章习题一、填空题(1)计算机网络中共享资源指的是硬件、软件和___数据___资源。(2)计算机网络中,通信双方必须共同遵守的规则或约定,称为__协议__。(3)在计算机局域网中,将计算机连接到网络…

discuz MVC结构分析

Discuz软件经解压后产生的三个文件夹中的一个叫upload的成为网站的根目录。里面的内容可以在某些网站上在线阅读,如用好库编程网。也可以离线在本地阅读,如用VS.Php for Visual Studio。这里面的内容安排的井然有序。不同用途的文件都放在了不同的文件夹…

postforobject 设置代理_Spring RestTemplate和代理身份验证

小编典典经过许多不同的选择之后,由于能够在创建时为RestTemplate设置代理,因此我可以选择以下代码,因此我可以将其重构为单独的方法。只是要注意,它还具有其他依赖性,因此请记住这一点。private RestTemplate createR…

LeetCode 1992. 找到所有的农场组(BFS)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始,大小为 m x n 的二进制矩阵 land ,其中 0 表示一单位的森林土地,1 表示一单位的农场土地。 为了让农场保持有序,农场土地之间以矩形的 农场组 的形式存在。 每一个农场组都…

flash html5 chrome,为了支持 HTML5 ,谷歌 Chrome 浏览器将“封杀”Flash

关于谷歌 Chrome 将不再支持 Flash 的话题,已经争论了很长一段时间了。不过现在,这家互联网巨头终于确认,为了支持 HTML5,Chrome 浏览器将不再运行 Flash。据谷歌表示,由于 Flash 会减慢网页浏览速度并可能引发信息安全…

VS2015开发Android,自带模拟器无法调试、加载程序,算是坑吗

VS2015出来后,确定变化很大,什么android、ios的,不在话下。对于我这样传统型的人,也第一时间试用了一下(vs2003->vs2008->vs2012->vs2015)。以前用eclipse开发过android小程序,现在想试…

amd cpu 安卓模拟器_夜神模拟器常见问题解答_v20201025

MAC版本常见问题Mac版本模拟器常见问题MAC模拟器出现“您应该将它移到废纸篓”解决办法MAC版本模拟器功能介绍MAC版本模拟器界面Mac版模拟器可能无法启动(卡99%)的原因及解决方式其他问题如何在夜神模拟器中安装自己想要的游戏/应用Sample CA 2证书没网解决办法GlobalSignature…

LeetCode 502. IPO(优先队列)

文章目录1. 题目2. 解题1. 题目 假设 力扣(LeetCode)即将开始 IPO 。 为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。 帮助…

计算机水平考试ppt试卷,计算机等级考试一级笔试卷库.ppt

计算机等级考试一级笔试卷库计算机等级考试一级笔试题库 全国计算机等级考试一级题库 1.微机中1K字节表示的二进制位数是( )。? A、1000 B、8x 1000 C、1024 D、8x1024?? 2.计算机硬件能直接识别和执行的只有( )。 A、高级语言 B、符号语言 C、汇编语…