无星的RN学习之旅(六)-第三方App跳转,苹果商店跳转,loading框
1.第三方App跳转
这是很常见的问题,第三方app跳转到本app去做一些业务操作。
但是这时候会发现,你跳进来,是黑色的,没有界面,没想到吧23333
其实这在前面说过,RN的想法很独特,是一个ctrl上放了无数个view,不停的更改view来渲染,而rn的首页view,则是在appdelegate的初始化方法里去添加的。跳转进来的处理方法里如果你不写,就不会有view添加进来。
所以这时候有两种方法来完成这个view的添加操作:
A.在第三方跳转进来的方法里做视图加载操作,但是这会遇到一个问题。假使你使用了RN的启动页,你会发现每次跳转进来都会开启启动页。这对用户的体验明显是很不好的。
B.自己创建一个UIViewCtrl,并作为根视图放进window中,在这个UIViewCtrl中做视图加载操作。这样跳转进来加载根视图的时候就会把这个RN的View给加载上去。而且根据生命周期场景复现的原则,不会再有加载第二次第三次的情况。
如图
另外,如果要跳到某一页面做某一操作,又不想重复跳,可以采用以下方式移除
#pragma mark --第三方跳转进入这里(新)
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
// NSLog(@"url ====%@",url);thirdViewController *vc = [thirdViewController sharedthirdViewController];vc.url = url;UIViewController *topViewCtrl = self.nav.topViewController;if ([topViewCtrl isKindOfClass:[thirdViewController class]]) { //判断是否在最顶层[vc thirdSign];}else{[self.nav pushViewController:vc animated:YES];[vc thirdSign];}return YES;
}
复制代码
2.应用升级苹果商店跳转
这个就很简单了啊,直接link:app在苹果商店的地址就行,至于怎么找app在苹果商店的地址,谷歌一下或百度一下都有。
3.启动屏设置
采用了RN的启动页,你需要把原生的启动页稍作更改。把这个勾去掉
#3.按钮点击封装防止二次点击
是不是有时候控件响应较慢,点击两次还以为没反应,结果却运行两次操作,感觉比较烦人。 这里贴出一个大佬给的方式,其实是采用定时器操作,只要有点击操作,做出事件处理,并开启定时器,在定时器时间内屏蔽其他的点击操作。
珠海-星落 10:59:19
你把 TouchOpacity外层做个封装
珠海-星落 10:59:42
然后以后不用TouchOpacity, 用你那个TouchOpacityOnce那如果要往TouchOpacity放组件的话,就用参数传进去吗?
珠海-星落 11:01:36
TouchOpacity怎么用 TouchOpacityOnce就怎么用
珠海-星落 11:02:12
把乱七八糟的props全传递给内部的TouchOpacity
复制代码
2018-10-12更新
正确做法是:去抖、节流
4.Loading框的展示
以前曾经使用RN提供的Modal类自己封装过一个网络加载等待框,但是放到网络请求中并不好用。会发现两个问题:
a.时常唤起失败或者消失失败。
b.导致应用卡死或锁屏无法操作。
可能是我modal的使用方式不对吧。
后来采用了一个新的方式:
使用原生的菊花,iOS用iOS的,安卓用安卓的。而且体验非常好,基本不会唤起失败,而且不用每个需要使用的地方都写控件,直接调用与原生交互module的show方法即可。 值得注意的是:
iOS建议采用GCD的主线程去完成这个菊花的show和dismiss操作,原因是UI刷新应当在主线程去做,唤起成功性也较大。
最后:感冒了,有没有好心人捐助一包板蓝根啊,要死了 (ಥ_ಥ) (ಥ_ಥ) (ಥ_ಥ) (ಥ_ಥ) (ಥ_ಥ) (ಥ_ಥ) (ಥ_ಥ) (ಥ_ಥ) (ಥ_ಥ)
无星的RN学习之旅(一)-环境安装以及新建项目
无星的RN学习之旅(二)-RN与原生的通信
无星的RN学习之旅(三)-bridge is not set.
无星的RN学习之旅(四)——通信、持久化存储、xcode打包
无星的RN学习之旅(五)-关于react-navigation多层级页面返回时,去掉逐层推出动画
无星的RN学习之旅(六)-第三方App跳转,苹果商店跳转,loading框相关推荐
- 无星的RN学习之旅(四)——通信、持久化存储、iOS打包
说说最近项目的一些感想吧. 一.RN的创意 RN其实我觉得是一个很有创意的想法.不知道各位写RN项目的时候,有没有打开Xcode看过app的层级关系,我发现RN的这个想法,真的很有创意. 作为一名原生 ...
- HALCON学习之旅(六)
HALCON学习之旅(六) 文章目录 HALCON学习之旅(六) 1.Halcon代码如何导出高级编程语言代码 + 配置Halcon/C++编程环境 2.Halcon连续采集相机图像 3.Halcon ...
- 我的Go语言学习之旅六:做一个WIN的简单弹窗
做为一个WIN的爱好者,不得不说,通常情况下在学习一门新语言之后我会很急于制作一个弹窗来测试一下这个语言在WIN的窗体效果,这里不多说,先上代码. package mainimport ( " ...
- HALCON学习之旅(七)
HALCON学习之旅(七) 文章目录 HALCON学习之旅(七) 1.MFC与Halcon混合编程 2.C#与Halcon混合编程 3.Halcon测量助手使用 4.Halcon实例进阶一(拟合区域椭 ...
- SpringBoot学习之旅(七)---JPA进阶篇之自定义查询、修改、分页
文章目录 前言 源码下载 其他文章 查询关键字 自定义Select和Update 分页及自定义分页 自定义分页 分页查询的业务代码 前言 前一节SpringBoot学习之旅(六)-JPA操作MySql ...
- 大数据技术 学习之旅_数据-数据科学之旅的起点
大数据技术 学习之旅 什么是数据科学? (What is Data Science?) The interesting thing about Data Science is that it is a ...
- 猿创征文|我的前端学习之旅【来自一名大四老学长的真情流露】
猿创征文 | 我的前端学习之旅 自我介绍 我浑噩的大一大二(是不是另一个你) 我的大三生活 大三上(学习过程.学习方法.推荐网站) 大三下(技术提升.荣誉证书.推荐比赛) 我与 CSDN 的机缘(从小 ...
- 打怪升级之小白的大数据之旅(六十七)<Hive旅程第八站:Hive的函数>
打怪升级之小白的大数据之旅(六十七) Hive旅程第八站:Hive的函数 上次回顾 上一章,我们学习了如何对数据进行拆分–分区表与分桶表,使用分区表与分桶表,可以加快我们的查询效率..本章节是Hive ...
- Python学习之旅(核心编程基础篇003运算符)
Python学习之旅 Python核心编程基础篇2020.12.18 一.算数运算符 二.比较运算符 三.赋值运算符 四.逻辑运算符 五.成员运算符 六.身份运算符 七.三目运算符 八.运算符优先级 ...
最新文章
- CSS 实例之打开大门
- Windows PE导出表编程4(重构导出表实现私有函数导出)
- C语言实现斐波那契搜索Fibonacci search算法(附完整源码)
- 如何使用shell脚本快速排序和去重文件数据
- 修改IIS7并发连接数目限制
- MySQL子查询操作实例详解
- Google的YSlow——Page Speed(附插件下载)
- 松下抛却Jungle掌机研发项目
- python百度云安装包_phython爬全百度评价_python安装包百度云
- 使用java解压GZip文件
- 成为虚无鸿蒙系统掌控者,飞剑问道:烟雨飞剑破开鸿蒙空间,秦云成第四位鸿蒙掌控者!...
- uchome 标签讲解
- 注塑模具设计师要懂得的四个概念
- ubuntu中如何修改计算机名字
- 被“投机之王”奉为交易核心的时间要素到底是什么?
- VS2017配置OpenCV4.0(Win10环境)
- 谁小时候没有计算机课,你的童年电脑记忆里有它们吗?
- 如何成为用户真正需要的短信验证平台
- 懂得选择,学会放弃!
- 电影的 BD、TC、TS、CAM等格式含义(转载收藏)
热门文章
- 阿里云服务器linux切换到root 用户,修改root密码
- win7计算机名改成大写,处置win7系统将word中的阿拉伯数字转换成大写数字的还原方案...
- 【转】利用泰勒公式推导梯度下降法
- 一个执行计划异常变更的案例 - 外传之SQL Profile(上)
- 什么是yyyy-mm-dd格式
- 微信公众号给女友推送消息,无需手写代码(超全)
- Linux常用指令整理
- android相机保存文件为空,android 调用系统相机拍照,返回的data为null
- 关闭xshell6提示音
- vue 后台翻译_vue前端vue-i18n实现翻译功能