【踩坑记】从HybridApp到ReactNative

前言

随着移动互联网的兴起,Webapp开始大行其道。大概在15年下半年的时候我接触到了HybridApp。因为当时还没毕业嘛,所以并不清楚自己未来的方向,所以就投入了HybridApp的怀抱。

HybridApp最早好像是国外的PhoneGap,然后国内有AppCan、Dcloud、APICloud等等。我当时接触的是APICloud,相比于其他平台,APICloud最大的特点是它的混合程度比较高!

要知道,Webapp最大的问题就是性能问题始终无法和原生App相比,由此才发展出来HybridApp。

界内公认的最稳定的的Hybrid开发方式就是:由Native解决交互问题,由H5解决应用层问题。比如AppStore就是采用这种模式。

在这一点上APICloud做的还是不错的,它的交互都是调用原生的接口,而应用层开发者可以自行通过H5进行开发。

当然了,HybridApp的坑还是比较多的。在大概半年的时间里我踩了无数的坑。。。

想起来都是泪啊。

不说了,今天说说React Native。

React Native

React Native

因为Hybrid的平台太多了,所以一直以为React Native也是一种HybirdApp开发方式。

最近想做一个监听手机短信的APP,所以就又用APICloud尝试了下,结果只能监听到正规手机号发送的短信却监听不到短信通道发送的。我以为是APICloud的模块问题,所以就想着看看React Native能不能帮我解决这个需求?

了解RN之后才发现,完全不是我想的那样!!

之前的各种HybridApp开发方式,它们的原理其实就是在一个运行在Webview中的app,只不过这个Webview比较特殊而已。

而RN完全不是这样!

RN是最终还是会把你写的代码转换成原生的代码进行编译。这就意味着RN开发出来的APP是无限接近原生APP的性能的!

FB真是牛逼到家了!!

具体的RN开发我还没深入,这里就不误人子弟了。

下面就说说RN到底能不能帮我解决监听短信的问题呢?

当时是。。。额。。。没解决。。。

哈哈~

其实没解决不是因为RN的问题,具体的原因我最后再说。

我查遍了RN的文档,最终确定确实是没有SMS相关的API和模块。

无奈之下只能在网上搜索下咯~

这里我就要夸一夸我大Google了。

在百度上搜索ReactNative SMS,毛也没有搜到!

在Google上立马搜到了很多。

百度搜索结果
Google搜索结果

成功找到一个React-native-sms-listener的模块,是一个巴西的开发者开发的。

React-native-sms-listener

兴奋的去安装编译,结果又掉坑里了。。。

在坑里爬了半天,发现是因为RN的版本升级了。。。

0.29更新日志

在RN的0.29版本中,Android的原生代码中增加了一个MainApplication.java的文件,原先的MainActivity.java的文件也有所调整。。。

而这个React-native-sms-listener的模块安装的时候要求将他的一段代码写到MainActivity.java中去,结果就当然可想而知了,编译的时候死活无法通过。抓狂~

然后又费了半天劲给RN进行降级。

这里也提一嘴如何给RN降级,官网的文档只提了如何升级却没有如何降级,这又是一个小坑。

RN如何升级

因为是通过npm进行管理的,所以会有一个package.json的文件。这个文件里指定了RN的版本,安装好之后就是最新版本,如果官网版本有更新,那么你这里的版本就会落后了,那么升级的时候就是需要把这个版本号改为最新的版本然后执行npm install.

升级很简单,降级需要注意的是。你需要先把Android相关的代码全部删掉。

ReactNative根目录

就是图中的android文件夹和index.android.js的文件全部都删掉。然后将package.js中的版本号调整为要降到的版本,最后执行npm install就可以了。

为什么要删掉?官网文档中有提到的

如果是新添加的文件,则直接创建。
如果文件和当前版本的文件相同,则跳过。
如果文件和当前版本的文件不同,则会提示你一些选项。

这就意味着,如果新版本有新文件而旧版本并没有,它是不会自动删掉的。这就会导致编译的时候出现一些莫名奇妙的错误。。。

最终

成功的写了一个监听短信的App,可惜还是监听不到通过短信通道发来的短信。。。

我又一度怀疑是不是巴西那哥们写的模块有问题。。。

反正Android的开发环境都搭好了,索性自己用原生的方式写一个吧。

查了下资料,发现想要监听短信有两种方式,一种是监听广播,一种是监听短信数据库。

首先尝试了监听数据库,经过一番调试终于可以监听到了,赶紧找个渠道发个验证码试试。激动~~

可是。。。

尼玛!!!

还是监听不到!!!

这时候我突然想起一件事:MIUI的短信列表被特殊处理了!


Paste_Image.png

如上图,它把通知类的短信和普通短信进行了区分把通知类的短信摘出去了。。

坑啊~

这TM肯定不在一个数据库了。。。

想明白这个问题之后都无奈了,折腾半天是手机系统的问题。。。

然后又尝试了下监听广播的方式,也宣告失败。

猜测miui底层应该在自身接收到广播做完相应处理就把广播拦截掉了。。

好了,本周的踩坑记就分享到这里了~

彩蛋

看过我之前文章的都知道我为什么要做短信监听。我说过打算做两个Sender,一个是App,一个是基于SIM900A的小嵌入式产品。App的版本暂时就这样了,等我给我的M4刷个其它的ROM再说。

喜讯是SIM900A调用Http请求时总重启的问题顺利解决了!!

原来是电脑USB电流输出不足导致的,外接了个电源立马好了~

请叫我踩坑小王子~


我是闫大伯,一只不断踩坑爬坑的野生程序猿

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容