0

当我的应用程序在前台时,通知 url 链接会自动打开,无需用户的任何贡献。

现在,我想在通知栏中保留通知,当用户按下将打开 url 链接的通知时。还有一件事我必须提到的是,当我的应用程序在后台运行时它运行良好。通知到达通知栏。我想为前台做同样的事情。

请帮助,在此先感谢。

我的FirebaseMessagingServices

public class MyFirebaseMessagingService extends FirebaseMessagingService {

private static final String TAG = "MyFirebaseMsgService";

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    if(remoteMessage.getData().size()>0){
        String url = remoteMessage.getData().get("url");
        Intent intent = new Intent("com.bellecarib_FCM-MESSAGE");

        intent.putExtra("url",url);

        LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
        localBroadcastManager.sendBroadcast(intent);
    }

}

这是我的 MainActivity 代码

        LocalBroadcastManager.getInstance(this).registerReceiver(mHandler, new IntentFilter("com.bellecarib_FCM-MESSAGE"));


 if(getIntent().getExtras() != null){
        for(String key: getIntent().getExtras().keySet()){
            if(key.equals(("url"))){
                mwebView.loadUrl(getIntent().getExtras().getString(key));
                Toast.makeText(getApplicationContext(),"Opening The Notification Page",Toast.LENGTH_LONG).show();
            }

        }

    }
4

1 回答 1

0

您看到的行为是当您从 FCM 发送通知负载时。如果你想要一个自定义的行为,那么只发送一个数据负载,当你收到消息时,手动抛出一个通知。这意味着您的应用需要做更多的工作(以定制为代价)。此外,数据负载以正常优先级传送,这意味着如果您的设备处于空闲模式,则 FCM 数据负载消息不会立即传送并推迟到下一个维护窗口(在 Android 打盹模式和应用待机时读取)。

希望这很清楚

于 2017-02-17T00:54:24.397 回答