os如果没有页面跳转的需求的话就使用极光推送,如果有页面跳转如果用了极光推送就只有用oc去写,但是我不会oc,所以智能放弃极光选用ios自己的apns来实现

新建项目跟安卓创建项目差不多,新建完成后就是初始话phonegap,注意在phonegap.local.properties文件中phonegap.platform设置为ios

cmd移动到新建的项目的phonegap的文件夹下面安装插件:

  1. phonegap local plugin add https://github.com/phonegap-build/PushPlugin.git

安装完插件后我们就可以在app.js文件夹中编写逻辑代码了。主要的逻辑代码写在app.js中的lunch方法中,写在外面会找不到对象

  1. plugins.pushNotification.register(
  2. tokenHandler,
  3. errorHandler,
  4. {
  5. "badge":"true",
  6. "sound":"true",
  7. "alert":"true",
  8. "ecb":"onNotificationAPN"
  9. });

tokenHandler是获取token的方法:

  1. function tokenHandler (result) {
  2. alert('token = ' + result);
  3. }

获得的这个token非常的重要,后面自己实现的apns推送需要这个token来标明推送到哪台设备上

errorHandler为错误的回调,可以在这里提醒下用户获取推送失败什么的

  1. function errorHandler (result) {
  2. // Your iOS push server needs to know the token before it can push to this device
  3. // here is where you might want to send it the token for later use.
  4. }

我这里没有写逻辑

onNotificationAPN:这个东西就是非常重要了,这个就是点击了推送后的回调函数

  1. function onNotificationAPN(event){
  2. if ( event.alert )
  3. {
  4. Ext.getCmp('tab').setActiveItem(1);
  5. }
  6. }

这个方法里面就可以写跳转页面的逻辑代码,我这里的逻辑是如果推送内容不为空就跳转到第二张页面

app的代码就完成了,现在就需要写自己实现apns的方法。java的实现代码

解压包后里面有一个com的文件夹和一个text的文件,把com文件夹放到java项目中,然后再写一个controller调用text文件里面的方法;

text里面加载了一个p12的文件,这个文件是我们申请的推送许可,生成方法

token:是我们app里面获取到的那个token,根据这个推送到设备上面。

如果想像极光推送那样发送附加字段可以在

  1. String payload = APNS.newPayload().customField("type", 4).alertBody(content).badge(badge).build();

这句代码中加上.customField(),参数就是key-value的键值对,发生成功后在前台的tokenHandler里面直接result.key值就能获取到相应的value值

phonegap + 推送 + 页面跳转 (ios)的更多相关文章

  1. iOS点击推送消息跳到应用指定页面

    现在的推送用的越来越频繁,几乎每个应用都开始用到了.其实又有几个用户会去看推送消息呢?没办法,产品经理最大啊,只是苦了我们这一帮程序员啊!闲话少说,进入正题.兄弟我用的是极光推送,自然是以极光推送为例 ...

  2. iOS 极光推送 如何点击推送消息跳转页面

    假如你已经集成完了极光,恰好有这个问题不知如何解决,可以看看这篇文章,这篇是针对远程通知的,本地通知大同小异吧. 根据我项目的要求,极光推送跳转指定页面分为两种情况:app在后台情况和app在杀死的情 ...

  3. iOS极光推送 点击推送消息跳转页面

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  4. 点击推送消息跳转处理(iOS)

    当用户点击收到的推送消息时候,我希望打开APP,并且跳转到对应的界面,这就需要在AppDelegate里面对代理方法进行处理. 当用户点击推送消息打开APP的时候会调用 - (BOOL)applica ...

  5. iOS:极光推送控制器跳转

    在前面已经做完了极光消息的推送,那么有消息了,如何跳转到需要的控制器呢?其实,主要还是在userInfo这个消息里面做判断来处理,具体如下: 下面这两个是远程推送时接收消息的方法,这是应用程序提供的方 ...

  6. 【原】Github系列之二:开源 一行代码实现多形式多动画的推送小红点WZLBadge(iOS)

    更新日志 V1.2 2015.09.25 1.UITabBarItem badge is supproted; 2.Enable change badge properties when badge ...

  7. 开源 一行代码实现多形式多动画的推送小红点WZLBadge(iOS)-备用

    更新日志 V1.2 2015.09.25 1.UITabBarItem badge is supproted; 2.Enable change badge properties when badge ...

  8. iOS-点击推送消息跳转处理

    当用户通过点击通知消息进入应用时 - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDi ...

  9. php做推送服务端实现ios消息推送

    本文部分内容引用于 http://zxs19861202.iteye.com/blog/1532460 准备工作 1.获取手机注册应用的deviceToken(iphone手机注册应用时返回唯一值de ...

随机推荐

  1. Pass value from child popup window to parent page window using JavaScript--reference

    Here Mudassar Ahmed Khan has explained how to pass value from child popup window to parent page wind ...

  2. QTP 中对象操作

    1.创建对象(将浏览器设置为一个对象) set oIE=createobject("internetexplorer.application") 2.将浏览器设置为可见的 oIE. ...

  3. A+B Problem(V)

    描述 做了A+B Problem之后,Yougth感觉太简单了,于是他想让你求出两个数反转后相加的值.帮帮他吧 输入 有多组测试数据.每组包括两个数m和n,数据保证int范围,当m和n同时为0是表示输 ...

  4. jQuery Validate 插件[表单验证]

    在客户端添加信息提交表单时我们经常需要做一些验证,比如验证不能为空,验证客户输入手机格式,验证客户输入email,url等的格式,我们可以通过EL表达式结合js 进行自主验证,今天总结一个JQuery ...

  5. linux-rm

    rm可以删除文件夹和文件 rm -rf强制删除不询问 rm /*    自杀绝技,赶紧跑吧 mkdir -p创建父目录 mkdir -p /tmp/wsb/dgl(wsb这个文件夹之前没有) rmdi ...

  6. [改善Java代码]Java的泛型是类型擦除的

    泛型可以减少强制类型的转换,可规范集合的元素类型,还可以提高代码的安全性和可读性,正是因为有了这些优点,自从Java引入泛型之后,项目的编码规则上便多了一条,优先使用泛型. Java泛型(Generi ...

  7. Oracle查找被长时间锁定的对象并kill

    1.用如下语句查找被锁住的表名.OSclient.Session信息 SELECT B.SID         ,B.SERIAL#         ,D.SPID        OS系统进行号    ...

  8. hishop网站迁移后出现DataProtectionConfigurationProvider错误(转)

    配置错误说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件.分析器错误信息: 未能使用提供程序“DataProtectionConfiguration ...

  9. JS中的原型继承和多重继承

    概念:1原型继承是创建新类型对象----子类型,子类型基于父类型,子类型拥有父类型所有的属性和方法(从父类型继承得到),然后修改其中的部分内容或者添加新的内容.继承最好在子类型模型可以被视为父类型对象 ...

  10. Android之线程终止

    Hanlder是线程与Activity通信的桥梁,利用handler接收到任务线程,放到任务队列里面派对执行. 1.初始化的时候,定义启动的线程为一个守护线程,这样当主线程消亡掉的时候,其他线程也会被 ...