我在Cordova Android应用中使用Parse进行推送通知。通知正常到达,但当点击一个打开应用程序时,它会以黑屏打开。
当我点击Android设备后退按钮时,黑屏进入,后面会出现cordova应用程序。所以应用程序似乎不仅仅是恢复,而是打开一个空白的活动,我想。
我正在使用以下插件: https://github.com/benjie/phonegap-parse-plugin ,另外我在主要活动类中添加了一些额外的行,包含在下面:
package com.mycompany.myapp;
import android.os.Bundle;
import org.apache.cordova.*;
import com.parse.Parse;
import com.parse.ParseAnalytics;
import com.parse.ParseInstallation;
import com.parse.PushService;
public class MyApp extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.init();
super.loadUrl(Config.getStartUrl());
// register device for parse
Parse.initialize(this, APP_ID, PRIVATE_KEY);
PushService.setDefaultPushCallback(this, MyApp.class);
ParseAnalytics.trackAppOpened(getIntent());
ParseInstallation.getCurrentInstallation().saveInBackground();
}
}
那么我该怎样才能让应用程序从后台返回,而不是尝试采取任何具体行动并在顶部显示黑屏?
答案 0 :(得分:1)
要回答我自己的问题,就我从解析文档
中可以看出,这是预期的结果当客户端收到推送消息时,将显示通知 在系统托盘中。当用户点击通知时,他们会 通过新的YourActivity实例进入应用程序。
来自:https://parse.com/docs/android/api/com/parse/PushService.html
所以关键的是,它创建了一个新实例,我假设尝试加载我的index.html,但由于应用程序本身已经在运行,因此没有Cordova初始化或deviceReady。
当我找到一个解决方法时,我会发布它。
<强>更新强>
我错了,我的config.xml中有以下设置:
<preference name="KeepRunning" value="false"/>
删除修复它,因为它默认为true
。来自Cordova文档:
KeepRunning(boolean,默认为true):确定是否 即使在暂停事件之后,应用程序仍在后台运行 火灾。将此设置为false不会在暂停后终止应用程序 事件,但只是停止在cordova webview中执行代码 而应用程序在后台。