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

皮特:

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

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

我实际上已经解决了这个问题,但是由于这里不得不使用各种零散的解决方案和论坛来找到答案,因此我将完整的解决方案放在这里,而且我认为Cordova / Phonegap和Parse越来越受欢迎,并且似乎有很多类似问题的人。

皮特:

我问了许多与此类似的问题,并进行了大量的谷歌搜索,而且我设法从各个地方整理出一个解决方案。

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

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

对于那些不知道的人,Phonegap是Adobe发行的Cordova,非常相似,但是最上面有一些附加功能,主要是我认为适用于Phonegap Build。

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

Cordova / Parse插件

我使用以下插件来连接Parse和Cordova。该插件有多个版本,已经被分叉了几次,但是Github用户benjie的版本为您提供了最大程度的自动化,从而最大程度地减少了使用源代码的麻烦在Github页面上找到安装说明:

更新活动

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

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

在文件中添加此导入,它可以紧跟其余的导入语句:

import com.parse.ParseAnalytics;

然后在onCreate方法末尾添加此代码,以在用户从PN打开应用程序时跟踪Parse

ParseAnalytics.trackAppOpened(getIntent());

扩展应用程序

这是我从旧的Parse帮助论坛中获得的最后一部分,它使我花费了最长的时间来解决问题。

如果您将应用程序保留为当前状态,则可以接收推送通知。实际上,您应该对其进行测试,以确保到目前为止已正确完成。

...但是,如果您强行关闭应用程序(例如,在Galaxy S2上按住主屏幕按钮,然后将应用程序滑开),则该应用程序将无法接收推送通知。

我相信这是因为您通过强制关闭应用程序(包括PN的侦听器)来杀死应用程序的各个方面。

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

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

1:添加一个名为新的文件ExampleApplication.java旁边您Example.javacom.company.myappSRC Eclipse中的部分。该文件需要以下内容,并针对您的项目进行了相应更新(例如,包和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插件
  • 更新主活动类
  • 扩展主应用程序类

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Cordova / Phonegap Android解析推送通知未恢复应用

如何使用FCM在phonegap中获取推送通知值?

在iOS应用[phonegap / cordova] [Pushwoosh]上将推送通知显示为警报消息

当应用在后台收到Phonegap(cordova)的推送通知时,增加徽章编号,

Phonegap / Cordova如何通知Android页面已加载?

在 DevExtreme/Phonegap 上使用 FCM 推送通知

使用cordova-plugin-fcm和PhoneGap Build的Firebase推送通知

如何使用cordova-phonegap放置iOS通知

PhoneGap / Cordova应用程序通知

如何在phonegap应用程序中使用websokets来通知用户?

如何在Cordova项目中使用PhoneGap Developer应用程序

如何在cordova / phonegap应用程序中截屏

如何将新帖子的推送通知从Wordpress发送到PhoneGap(iOS和Android)

没有服务器的Cordova / PhoneGap推送通知

Phonegap(Cordova)iOS推送通知onNotificationAPN事件在后台触发

在 Android 上使用 Firebase Cloud 的 Adobe Phonegap 推送通知

Phonegap推送通知的实现

如何在Android中使用Pushwoosh发送自动推送通知

使用phonegap将推送通知发送到Android上特定用户的应用程序

如何在Cordova iOS应用程序中实现推送通知

如何在Cordova应用程序中实现本地推送通知

如何在Ripple中使用Sqlite运行PhoneGap应用?

如何在Android 2.3以下的版本中使用phonegap应用程序显示Numeric Keypaid

如何在不使用parse.com创建频道的情况下将推送通知发送到特定设备?

如何在Android上使用phonegap / cordova下载和保存文件

PhoneGap / Cordova Android开发

如何为Android设置Cordova / PhoneGap?

使用Java的cordova / phonegap

如何在Visual Studio中使用PhoneGap