起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15130|回复: 28

[分享] 极光推送使用总结

  [复制链接]

27

主题

77

帖子

450

积分

中级会员

Rank: 3Rank: 3

积分
450
QQ
发表于 2016-6-13 19:17:00 | 显示全部楼层 |阅读模式
本帖最后由 lchniao 于 2016-6-14 16:15 编辑

1.截止到2016-06-13官方的极光推送插件是旧版本的(wex5_3.4,wex5_3.5pre都测试过),在外卖案例中已经失效
2.需要自己更新极光推送插件,更新方法(据说更新后,目前只有android版本的好使,ios的不好使,等待官方更新吧)

我在这里简单告诉一下您以后更新极光推送的插件应该怎么做:
1).去https://github.com/jpush/jpush-phonegap-plugin下载最新版的cordova插件
2).修改文件夹的名字为插件的id即:cn.jpush.phonegap.JPushPlugin
3).将原来插件中的plugin-ex.xml文件拷贝到新版的插件中去
4).修改新版插件的plugin.xml文件,首先在xml中找到<preference name="API_KEY" />这句话,把它删除,因为我们配置参数的机制稍有不同,
然后修改参数的名字:
                            在iOS平台的配置下找到
<config-file target="*PushConfig.plist" parent="APP_KEY">
                <string>$API_KEY</string>
</config-file>
然后将其修改为
<config-file target="X5/Resources/PushConfig.plist" parent="APP_KEY">
                                        <string>$jpush_appkey</string>
                        </config-file>

                              在Android平台的配置中找到:
<meta-data android:name="JPUSH_APPKEY" android:value="$API_KEY"/>
将$API_KEY改为:$jpush_appkey
这样就可以了!


3.需要去看官方给出的极光推送的视频,了解一下具体的使用方法

可以看案例的源码:/UI2/takeout/jpush.js
视频:http://pan.baidu.com/s/1jGhHHyQ

4.因为是cordova插件,需要真机运行才可以,(而且需要部署在公网的ip上)这里修正一下,不需要公网也可以测试的,但必须是手机上运行才可以
测试方法:打真机调试包,即选择模式3发布,不要勾选发布模式,这种情况下,手机安装app后,跑的代码都是开发环境的,哪里不对可以随时调整(包括js和java代码)
调整好后在手机上直接运行,看效果就可以

5.极光推送获取不到getRegistrationID的主要原因就是插件太旧了,需要自己更新(在这卡了一天。。。)

6.更改jpush下的jpush.config.xml文件,换成自己申请的极光推送的key

7选择打包的cordova插件,一定要选上极光推送和设备信息,并且要配置极光推送插件的参数
8.包名一定要对上,极光的包名和项目的包名

9.最简单的调用代码

require("$UI/system/lib/cordova/cordova");
        require("cordova!cordova-plugin-device");
        require("cordova!cn.jpush.phonegap.JPushPlugin");
        var jpushInstance = require("./jpush");


Model.prototype.sendPushMessage = function() {
                debugger;
                jpushInstance.getRegistrationID().done(function(id) {
                        alert(id);
                        justep.Baas.sendRequest({
                                "url" : "/jpush/jpush", // servlet请求地址
                                "action" : "push", // action
                                "anync": false,
                                "params" : {"registrationId" : id}, // action对应的参数
                                "success" : function(data){
                                        alert(111);
                                } // 请求成功后的回调方法
                        });
                });
        };


通过按钮调用sendPushMessage方法即可测试成功



1

主题

32

帖子

247

积分

中级会员

Rank: 3Rank: 3

积分
247
QQ
发表于 2016-6-13 20:28:02 | 显示全部楼层
这几天我也在着急这事!怪不得这么难调通呵呵。谢谢楼主!
回复 支持 反对

使用道具 举报

12

主题

133

帖子

473

积分

中级会员

Rank: 3Rank: 3

积分
473
QQ
发表于 2016-6-14 08:40:07 | 显示全部楼层
ios能用不?
回复

使用道具 举报

27

主题

77

帖子

450

积分

中级会员

Rank: 3Rank: 3

积分
450
QQ
 楼主| 发表于 2016-6-14 08:42:57 | 显示全部楼层
gzxbe 发表于 2016-6-13 20:28
这几天我也在着急这事!怪不得这么难调通呵呵。谢谢楼主!

不客气
回复 支持 反对

使用道具 举报

27

主题

77

帖子

450

积分

中级会员

Rank: 3Rank: 3

积分
450
QQ
 楼主| 发表于 2016-6-14 08:43:25 | 显示全部楼层

你测测吧,我是没测啊,有结果了告诉我一下
回复 支持 反对

使用道具 举报

73

主题

202

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
QQ
发表于 2016-6-14 08:52:35 | 显示全部楼层
IOS能用
回复

使用道具 举报

12

主题

133

帖子

473

积分

中级会员

Rank: 3Rank: 3

积分
473
QQ
发表于 2016-6-14 14:56:23 | 显示全部楼层

求用法 求代码,我的用不了
回复 支持 反对

使用道具 举报

12

主题

46

帖子

102

积分

初级会员

Rank: 2

积分
102
发表于 2016-6-15 09:09:30 | 显示全部楼层
但是直接打包外卖的demo是可以推送的啊,不用更新cordova插件,可是直接在外卖的demo上使用自己的AppKey,Master Secret和包名,不能实现推送
或者就是为了笑话这个世界
回复 支持 反对

使用道具 举报

142

主题

438

帖子

826

积分

高级会员

Rank: 4

积分
826
QQ
发表于 2016-6-15 11:19:21 | 显示全部楼层
更换后,V3.2.1打包出错 错误如下


增加插件:
   使用到的插件: [com.justep.cordova.plugin.push, cn.jpush.phonegap.JPushPlugin, org.apache.cordova.splashscreen, uk.co.whiteoctober.cordova.appversion, org.apache.cordova.device, org.apache.cordova.splashscreen, org.apache.cordova.inappbrowser, org.apache.cordova.file-transfer, cn.jpush.phonegap.JPushPlugin, org.apache.cordova.file, org.apache.cordova.device, com.justep.cordova.plugin.push]
   开始准备插件参数......
   插件 "com.justep.cordova.plugin.push" 参数如下:
        mqtt_server:tcp://localhost:1883
   插件 "cn.jpush.phonegap.JPushPlugin" 参数如下:
        jpush_appkey:86a12d48725f315abb472165
   插件参数准备完成
   开始安装插件......
   cordova version check failed ("D:\BeX5_V3.2.1\model\Native\OA\build\src\platforms\android\cordova\version"), continuing anyways.
   Installing "com.justep.cordova.plugin.push" for android
   Installing "com.justep.cordova.plugin.push" for ios
   cordova version check failed ("D:\BeX5_V3.2.1\model\Native\OA\build\src\platforms\ios\cordova\version"), continuing anyways.
   Installing "cn.jpush.phonegap.JPushPlugin" for android
   cordova version check failed ("D:\BeX5_V3.2.1\model\Native\OA\build\src\platforms\android\cordova\version"), continuing anyways.
****ERROR****: 子任务 "addPlugins" 执行失败。
****ERROR****: 任务 "addPlugins" 执行失败。
****ERROR****: 执行出错:
****ERROR**** 错误信息: addPlugins returned: 1
****ERROR**** 调用栈:
        at com.justep.tools.ant.task.AddPluginsTask.exec(Unknown Source)
        at com.justep.tools.ant.task.AddPluginsTask.execute(Unknown Source)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
        at Pack.execTask(Pack.java:42)
        at Pack.access$000(Pack.java:25)
        at Pack$1.run(Pack.java:95)
        at java.lang.Thread.run(Thread.java:745)
回复 支持 反对

使用道具 举报

27

主题

77

帖子

450

积分

中级会员

Rank: 3Rank: 3

积分
450
QQ
 楼主| 发表于 2016-6-15 11:25:16 | 显示全部楼层
260008747 发表于 2016-6-15 09:09
但是直接打包外卖的demo是可以推送的啊,不用更新cordova插件,可是直接在外卖的demo上使用自己的AppKey,M ...

先用极光官网推送试试,好使了在用代码推送
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-6-13 18:16 , Processed in 0.061161 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表