目前我的App的通知後
就會開啟通知的動畫的細節頁面
然而今天測試時
突然發現兩者只導到首頁就停了
首先要先回憶Day23
總共有兩種導航方法
navigation.navigate('Home', {
screen: 'AnimeDetail',
params: { anime: notification.anime }
})
navigation.navigate('Home')
navigation.navigate('AnimeDetail', {
anime: notification.anime
})
目前iOS採用A方法
Android採用B方法
更改成B就可以了
...
...
...哪招?
A應該是官方做法:Passing params to a screen in a nested navigator
怎麼會無效...
樂觀一點看,至少寫法統一了
Android跟之前iOS發生的問題類似
其實並不是導航失效
而是點擊通知時不會觸發綁定在上面的ontification
函式
結論是:跟上兩篇的Splash Screen有關係
You cannot get the initial extras if there's another activity being opened at first.
這裡要來修改/android/app/src/main/java/com/專案名/
的MainActivity.java
及SplashActivity.java
兩支檔案
新增內容
// MainActivity.java
import android.content.Intent; // add
...
// add
@Override
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
// SplashActivity.java
...
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MainActivity.class);
// add
Bundle extras = getIntent().getExtras();
if (extras != null) {
intent.putExtras(extras);
}
//
startActivity(intent);
finish();
}
而導航的方法仍然是維持B
明天來幫App新增Icon
參考:onNotification is not getting called when opening the notification from background in Android