SNS项目笔记<二>--极光推送

SNS项目最重要的是资讯实时推送,每个用户都能够了解到对应的讯息,我们开发选择了极光推送作为项目的推送解决方案。博主根据自身项目的考察与网络上的资源,归纳了以下几种方法:

1、官方推送文档:

ionic2之后的版本的极光推送在网络上的资料少之又少,经过一番折腾过后,博主选择了官方的API文档。然后根据其所指引的demo进行搭建项目。

1.1 修改包名

在注册APP做极光推送的时候,需要当前的包名,经过几番折腾,这里严厉指责网络上一切改包名的博客,不负责任的在 项目名/platforms/android/ 目录下修改包名,从AndroidMainfest文件,android.json文件等进行修改包名。这样的做法首先不说成不成功起码在cordova命令运行下,整个项目会随着插件进行文件删改,这样修改包名无疑是最愚蠢与最不负责任的!正确的修改方法如下: 1.1.1 删除platfrom : 在项目目录下执行如下指令 ionic cordova platform remove android 或者直接删除platform与 plugins 目录(博主推荐直接删除目录,因为在命令下目录不会完全删除干净,最终在后续添加platform时报错) 1.1.2 在项目根目录下的config.xml文件内进行修改,指定widget标签中的id 为你所想要的包名,如图所示:

修改包名处.png

<b>1.1.3 在项目根目录下继续输入ionic cordova platform add android</b>或者直接ionic cordova run android 这样加载过后的android目录下的所有指向的包都是你所填写的包名。 1.2 搭建项目 通过官方文档进行项目搭建,这里不再赘述,详情请看<a href="http://zjcboy.com/2016/10/09/ionic2-jpush-demo/">官方搭建文档</a> 这里注意以下几点: 1.2.1 【注意:】官方文章中的命令行

官方命令行.png

是错误的,正确的命令行为<以url建立方法为例>:cordova plugin add https://github.com/jpush/jpush-phonegap-plugin.git --variable APP_KEY=your_jpush_appkey 这里是"APP_KEY"而官方文章中却写的是“API_KEY”,直接拷贝代码的童鞋肯定在这里吃了大亏!

1.2.2 官方文章中要我们直接将demo项目里面的node_module/ionic-native目录直接拷贝到我们项目引用的node_module目录下。这里又是一大错误,在我们每次build或者npm下载依赖的时候,node_module目录会clean下,也就是说在我们辛辛苦苦粘贴到本地代码的过后,其整个目录会在我们其他操作过后删除,这个时候我们本地依赖不存在了,需要实时拷贝项目代码!

1.2.3 关于1.2.2的解决办法:很可惜,在有限的时间内,博主没有解决办法,如果有更好的解决办法,请发邮件到stokid@126.com邮箱中,或者在该博客下留言,我会感激不尽!

2、“军神”解决方法

这里可以为大家隆重介绍下"军神"的博客,我觉得极光推送相关的要点都基本上写清楚了这里就不再赘述。请点击“军神”的博客

3、github大牛的解决方法

3.1 github项目地址:请点我 3.2 具体说明:此github代码相当于一个类库,通过导入此类库的方式即可成功对接上其里面的代码,这样非常方便,并且代码可控。然而其博主希望我们将其代码导入到node_module目录下,显然是不行的。于是我总结了以下操作<详见3.3>。 3.3 具体操作: 3.3.1 在项目根目录下输入ionic g 这时候会出先选项如图所示:

创建功能文件.png

此时按方向键选择provider,这个时候会显示:

选择结果.png

此时只需要填写你的provider名称即可,我们就以jpush为例:

创建provider成功.png

输入jpush,等待下一个根目录命令提示出现即完成创建。这个时候在项目中会出现:

显示结果.png

3.3.2 将github项目文件导入到jpush目录中:

导入结果.png

3.3.3 注册provider</b> 在项目文件app.module.ts中注册我们新创建的provider:

导包.png

注册.png

3.3.4 app.component.ts中init极光推送:

init极光推送

3.3.5 build项目或者直接run项目,再从极光开发者页面发送通知

发送通知.png

点击发送后,在模拟器上即可显示:

显示结果.png

这样我们就完成了整个推送对接的功能。

结束语:在我们日常开发中总会遇到很多问题,在问题难以解决的时候我们会借鉴别人的思路,但是在我们借鉴的时候,我们需要理智的去借鉴,不能盲目,要找出问题并通过自己的努力获取正确的结果,这样我们才有所提高!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

从零开始学web安全(1)

本文作者:IMWeb 刘志龙 原文出处:IMWeb社区 未经同意,禁止转载 一直对web安全很感兴趣,却一直只是略懂一点。决定从现在开始学起web安全...

20180
来自专栏王清培的专栏

ElasticSearch大数据分布式弹性搜索引擎使用

阅读目录: 背景 安装 查找、下载rpm包 、执行rpm包安装 配置elasticsearch专属账户和组 设置elasticsearch文件所有者 切换到el...

807100
来自专栏北京马哥教育

【图文并茂】一步步带你了解Web站点架构

1.1 http反向代理服务器 在web站点前端,我们需要搭建一个反向代理服务器,用于负责接受用户的请求,请求包括动态和静态的内容请求。一般反向代理服务器的部署...

50280
来自专栏Crossin的编程教室

如何安装 Python 的第三方模块

正所谓“人生苦短,我用 Python”。Python 的一大优势就是有丰富且易用的第三方模块,省去了大量重复造轮子的时间,节约了众多开发者的生命。对于已经熟悉 ...

29790
来自专栏HTML5学堂

移动端及时调试工具 - weinre使用方法

HTML5学堂:在前一篇文章当中,我们借着weinre讲解了NodeJS中的一些简单命令,也讲解了weinre的安装方法,今天我们把weinre的使用“完结”掉...

30630
来自专栏Pythonista

web service基础知识

<!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.PingFang SC'; color: ...

31230
来自专栏Ksher

Kubernetes的服务网格(第4部分):通过流量切换持续部署

翻译人:Ksher,该成员来自云+社区翻译社

40480
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合基础篇(六)maven整合SSM

前言   承接前文《Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven》,本篇所讲述的是如何使用maven与原s...

57450
来自专栏软件

GitHub快速入门图文全面详解

?tub程序员必须要会 作者:AWeiLoveAndroid 博客:https://www.jianshu.com/u/f408bdadacce 文章目录 入门...

22580
来自专栏云计算

Kubernetes的服务网格(第4部分):通过流量切换持续部署

除了服务发现,重要指标和TLS之外,linkerd还具有强大的路由语言,称为dtabs,可以用来改变请求的方式 - 甚至是单个请求 - 流经应用程序拓扑。在本文...

47170

扫码关注云+社区

领取腾讯云代金券