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

 摄影爱好者Summer_100 发布于 2022-12-31 14:40

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

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

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

1 个回答
  • 我已经问了很多与此相似的问题并且进行了大量的谷歌搜索,我已经成功地将来自不同地方的解决方案拼凑起来.

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

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

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

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

    Cordova/Parse插件

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

    https://github.com/benjie/phonegap-parse-plugin(不再维护 - 尝试不同的分支)

    更新活动

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

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

    在文件中添加此导入,它可以在其余的import语句之后执行:

    import com.parse.ParseAnalytics;
    

    然后在onCreate方法结束时添加此项,以便在用户从PN打开应用程序时跟踪Parse

    ParseAnalytics.trackAppOpened(getIntent());
    

    扩展应用程序

    我从旧的Parse帮助论坛获得了最后一部分,并且花了我最长的时间来解决.

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

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

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

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

    https://www.parse.com/questions/push-notification-in-android-while-app-closed

    https://www.parse.com/questions/cannot-send-push-to-android-after-app-is-closed-until-screen-unlock

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

    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插件

    更新主Activity类

    扩展主Application类

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

    2022-12-31 14:42 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有