我在这里搜索了这些问题,但我发现的只是一个问题,当应用程序没有运行时。
就我而言,在我从Firebase控制台发送文本通知后,应用程序会在以下情况下收到通知:
我的问题是: 如果应用程序处于打开状态(屏幕打开且应用程序处于活动状态时 - 我触摸屏幕以便不让屏幕熄灭),我没有收到通知是否正常?
先谢谢你。
答案 0 :(得分:0)
在Firebase中推送通知:
当您的应用被杀并在后台时,您的o
方法将不会被调用。根据文档,您的通知将在系统托盘中。您可以从默认启动器类中检索通知。
var startIndex = $scope.currentPage * $scope.pageSize;
var endIndex = ($scope.currentPage * $scope.pageSize) + $scope.pageSize;
$scope.resultsToDelete = $scope.results.slice( startIndex, endIndex );
我的启动器类是Splashscreen,当应用程序被杀死时,您可以从捆绑包中检索通知数据。
SplashScreen.Java
onMessageReceived
当您的应用处于有效状态且前置状态时,您将收到推送通知,您的<application
android:name=".AppController"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".view.SplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
将被调用。
MyFirebaseMessagingService.Java
public class SplashScreen extends AppCompatActivity {
String messageBody, notificationtype, id, title;
Context mContext;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
mContext = SplashScreen.this;
if (getIntent().getExtras() != null && this.getIntent().getExtras().containsKey("title")) {
Bundle b = getIntent().getExtras();
String someData = b.getString("title");
String id = b.getString("id");
String notificationtype = b.getString("notification_type");
String message = b.getString("message");
// Log.e("firebaseid", id);
// Log.e("firebase", someData);
// Log.e("firebase", notificationtype);
Intent i = new Intent(SplashScreen.this, NotificationMessage.class);
i.putExtra("title", someData);
i.putExtra("id", id);
i.putExtra("notificationtype", notificationtype);
i.putExtra("messageBody", message);
startActivity(i);
finish();
}
}