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. 炼数成金hadoop视频干货03

    视频地址:http://pan.baidu.com/s/1dDEgKwD 着重介绍了HDFS 运行了示例程序wordcount,自己也试了一遍(用的伪分布式) 1.建立数据(和讲师的操作有些不一样,不 ...

  2. lk启动流程详细分析

    转载请注明来源:cuixiaolei的技术博客 这篇文章是lk启动流程分析(以高通为例),将会详细介绍下面的内容: 1).正常开机引导流程 2).recovery引导流程 3).fastboot引导流 ...

  3. mysql导入数据load data infile用法

    mysql导入数据load data infile用法 基本语法: load data [low_priority] [local] infile 'file_name txt' [replace | ...

  4. 在Visual Studio 的 “一般处理程序 ” .ashx 文件中如何创建Session 对象

    只需要继承这个接口即可实现创建Session对象.  IHttpHandler,System.Web.SessionState.IHttpSessionState 代码示例: public class ...

  5. Linux 命令 - file: 确定文件类型

    命令格式 file [-bchikLNnprsvz0] [--apple] [--mime-encoding] [--mime-type] [-e testname] [-F separator] [ ...

  6. Git CMD - fetch: Download objects and refs from another repository

    命令格式 git fetch [<options>] [<repository> [<refspec>…​]] git fetch [<options> ...

  7. .NET微信支付(H5仅限公众号支付)

    闲来无事,恰好有一个要用微信公众平台支付的功能,研究来研究去,就是要细心和多看腾讯提供的文档.当然有几个坑是很有必要说明一下的 公众号支付,这里统一叫H5支付,以下都是. 在做H5支付的时候,第一步就 ...

  8. CSS常用中文字体、字号

    字体(font-family): 新细明体:PMingLiU 细明体:MingLiU 标楷体:DFKai-SB 黑体:SimHei 宋体:SimSun 新宋体:NSimSun 仿宋:FangSong  ...

  9. poi-3.11-beta2-20140822.jar操作excel方法

    poi-3.11-beta2-20140822.jar操作excel方法 根据不同类型读取值的方法: // 获取单元格内不同类型的值 public String getValueByType(HSSF ...

  10. Swift扩展(Extension)

    在现有类和结构体的类型基础上,扩展新的功能. 语法: extension SomeType{ // new functionality to add to SomeType goes here } A ...