如何在Cordova / Phonegap Android应用程序中使用Parse.com推送通知?

时间:2014-07-30 13:53:56

标签: java android eclipse cordova parse-platform

如何使用Parse.com将推送通知发送到我的Cordova 3.5.0 Android应用程序。

大多数帖子似乎涵盖了我的问题的某些方面,但不是全范围(Parse / Android或Phonegap / Parse)

我实际已经解决了这个问题,但我在这里提出了完整的解决方案,因为我必须使用各种零散的解决方案和论坛才能找到答案,而且我认为Cordova / Phonegap和Parse都在越来越受欢迎的组合,似乎很多人都有类似的问题。

2 个答案:

答案 0 :(得分:11)

我已经问过类似的各种问题并进行了大量的谷歌搜索,并且我设法将来自不同地方的解决方案拼凑起来。

我通过命令行使用Cordova 3.5.0构建了我的应用程序。我相信这些步骤与Phonegap 3.5.0以及两者的早期版本一样,只要它的后3(CLI)。我正在使用Eclipse和Google的ADT工具

这不适用于Phonegap Build,因为你必须在Android项目中编辑Java和XML文件

对于那些不了解的人来说,Phonegap是Adobe的Cordova发行版,非常相似,但在顶部还有一些额外的功能,主要用于我认为的Phonegap Build。

出于本文的目的,您可以将Cordova换成Phonegap,至少在以下步骤中。使用Cordova CLI创建项目后,您需要执行所有这些步骤

Cordova / Parse插件

我使用以下插件连接Parse和Cordova。该插件有多个版本,它已分叉几次,但Github用户 benjie 版本的版本为您提供了最大程度的自动化,最大限度地减少了需求用源代码弄脏你的手。安装说明可在Github页面上找到:

更新活动

您现在需要开始编辑源代码。

找到应用程序的主要Activity类,在Eclipse导航器的 src 部分中,它将在您的主程序包中,类似于 com.company.myapp 然后是Example.java文件(假设示例是您的项目名称)。它将由Cordova为您生成。

在文件中添加此导入,它可以追踪其余的import语句:

import com.parse.ParseAnalytics;

然后在onCreate方法的末尾添加此内容,以便在用户从PN打开应用时在Parse中进行跟踪

ParseAnalytics.trackAppOpened(getIntent());

扩展应用

这个最后一部分来自旧的Parse帮助论坛,并且花了我最长的时间来解决。

如果您将应用程序保留为当前状态,则可以接收推送通知。事实上,你应该测试一下,以确保你到目前为止做得对。

...但是如果您强行关闭应用程序(例如,在Galaxy S2上按住主页按钮,然后轻扫应用程序),您就会停止应用程序接收推送通知。

我相信这是因为你通过强制关闭应用程序的各个方面来杀死它,包括PN的监听器。

使用以下帖子,我设法让应用程序在强制关闭后接收PN:

对我来说,实际的解决方案是执行以下两个步骤:

1:在Eclipse的 src 部分的 src 部分的 com.company.myapp 中添加名为ExampleApplication.java的新文件和Example.java。该文件需要以下内容,并根据您的项目进行相应更新(例如您的包和Parse密钥):

package com.company.myapp;

import android.app.Application;
import android.content.Context;

import com.parse.Parse;
import com.parse.ParseInstallation;
import com.parse.PushService;

import com.company.myapp.Example;

public class ExampleApplication extends Application 
{
    private static ExampleApplication instance = new ExampleApplication();

    public ExampleApplication() {
        instance = this;
    }

    public static Context getContext() {
        return instance;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        // register device for parse
        Parse.initialize(this, "APP_KEY", "CLIENT_KEY");
        PushService.setDefaultPushCallback(this, Example.class);
        ParseInstallation.getCurrentInstallation().saveInBackground();
    }
}

2:更新您的AndroidManifest.xml,以便<application>标记具有以下属性,以及它已有的属性:

android:name="com.company.myapp.ExampleApplication"

<强>摘要

完成后,您应该可以将通知推送到Android应用程序。

总结:

  • 安装Phonegap / Parse插件
  • 更新主要活动类
  • 扩展主要的Application类

这可能转移到非日食项目,大多数步骤将保持几乎相同,如果任何人有关于Android Studio的任何反馈或没有IDE的建设,那么我们可以更新此答案以反映这一点。

答案 1 :(得分:0)

此插件在我的应用中运行良好

https://github.com/benjie/phonegap-parse-plugin