1.第三方App跳轉(zhuǎn)
這是很常見的問題,第三方app跳轉(zhuǎn)到本app去做一些業(yè)務(wù)操作捣染。
但是這時候會發(fā)現(xiàn)骄瓣,你跳進來,是黑色的耍攘,沒有界面榕栏,沒想到吧23333
其實這在前面說過,RN的想法很獨特蕾各,是一個ctrl上放了無數(shù)個view扒磁,不停的更改view來渲染,而rn的首頁view式曲,則是在appdelegate的初始化方法里去添加的妨托。跳轉(zhuǎn)進來的處理方法里如果你不寫,就不會有view添加進來吝羞。
所以這時候有兩種方法來完成這個view的添加操作:
A.在第三方跳轉(zhuǎn)進來的方法里做視圖加載操作兰伤,但是這會遇到一個問題。假使你使用了RN的啟動頁脆贵,你會發(fā)現(xiàn)每次跳轉(zhuǎn)進來都會開啟啟動頁医清。這對用戶的體驗明顯是很不好的。
B.自己創(chuàng)建一個UIViewCtrl卖氨,并作為根視圖放進window中会烙,在這個UIViewCtrl中做視圖加載操作负懦。這樣跳轉(zhuǎn)進來加載根視圖的時候就會把這個RN的View給加載上去。而且根據(jù)生命周期場景復(fù)現(xiàn)的原則柏腻,不會再有加載第二次第三次的情況纸厉。
如圖
另外,如果要跳到某一頁面做某一操作五嫂,又不想重復(fù)跳颗品,可以采用以下方式移除
#pragma mark --第三方跳轉(zhuǎn)進入這里(新)
-(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.應(yīng)用升級蘋果商店跳轉(zhuǎn)
這個就很簡單了啊,直接link:app在蘋果商店的地址就行沃缘,至于怎么找app在蘋果商店的地址躯枢,谷歌一下或百度一下都有。
3.啟動屏設(shè)置
采用了RN的啟動頁槐臀,你需要把原生的啟動頁稍作更改锄蹂。把這個勾去掉
3.按鈕點擊封裝防止二次點擊
是不是有時候控件響應(yīng)較慢,點擊兩次還以為沒反應(yīng)水慨,結(jié)果卻運行兩次操作得糜,感覺比較煩人。
這里貼出一個大佬給的方式晰洒,其實是采用定時器操作朝抖,只要有點擊操作,做出事件處理谍珊,并開啟定時器治宣,在定時器時間內(nèi)屏蔽其他的點擊操作。
珠海-星落 10:59:19
你把 TouchOpacity外層做個封裝
珠海-星落 10:59:42
然后以后不用TouchOpacity抬驴, 用你那個TouchOpacityOnce
那如果要往TouchOpacity放組件的話炼七,就用參數(shù)傳進去嗎缆巧?
珠海-星落 11:01:36
TouchOpacity怎么用 TouchOpacityOnce就怎么用
珠海-星落 11:02:12
把亂七八糟的props全傳遞給內(nèi)部的TouchOpacity
4.Loading框的展示
以前曾經(jīng)使用RN提供的Modal類自己封裝過一個網(wǎng)絡(luò)加載等待框,但是放到網(wǎng)絡(luò)請求中并不好用陕悬。會發(fā)現(xiàn)兩個問題:
a.時常喚起失敗或者消失失敗题暖。
b.導(dǎo)致應(yīng)用卡死或鎖屏無法操作。
可能是我modal的使用方式不對吧捉超。
后來采用了一個新的方式:
使用原生的菊花胧卤,iOS用iOS的,安卓用安卓的拼岳。而且體驗非常好枝誊,基本不會喚起失敗,而且不用每個需要使用的地方都寫控件惜纸,直接調(diào)用與原生交互module的show方法即可叶撒。
值得注意的是:
iOS建議采用GCD的主線程去完成這個菊花的show和dismiss操作绝骚,原因是UI刷新應(yīng)當(dāng)在主線程去做,喚起成功性也較大祠够。
最后:感冒了压汪,有沒有好心人捐助一包板藍根啊,要死了 (??) (??) (??) (??) (??) (??) (??) (??) (?_?)
無星的RN學(xué)習(xí)之旅(一)-環(huán)境安裝以及新建項目
無星的RN學(xué)習(xí)之旅(二)-RN與原生的通信
無星的RN學(xué)習(xí)之旅(三)-bridge is not set.
無星的RN學(xué)習(xí)之旅(四)——通信古瓤、持久化存儲止剖、xcode打包
無星的RN學(xué)習(xí)之旅(五)-關(guān)于react-navigation多層級頁面返回時,去掉逐層推出動畫