Swift - JPush极光推送的使用3(根据Alias别名,给某个指定用户发推送)(转)
(2)以后给某个特定用户推送消息时,就可以用此别名来指定。
(3)每个用户只能指定一个别名。所以同一个设备,新设置的别名会覆盖旧的。
(4)如果要删除已有的别名,只要将别名设置为空字符串即可。
(5)系统不限定一个别名只能指定一个用户。如果一个别名被指定到了多个用户,当给指定这个别名发消息时,服务器端API会同时给这多个用户发送消息。
二、别名使用要求
(1)有效的别名组成:字母(区分大小写)、数字、下划线、汉字。
(2)限制:alias 命名长度限制为 40 字节。(判断长度需采用 UTF-8 编码)
下面是一个给指定用户发送消息的样例。
注意:这么做只是为了演示而已,实际项目中应该是 App 在后台就自动去注册别名(比如在登录成功后),而不是由用户去干预。
2,服务端界面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
import UIKit @UIApplicationMain class AppDelegate : UIResponder , UIApplicationDelegate { var window: UIWindow ? func application(_ application: UIApplication , didFinishLaunchingWithOptions launchOptions: [ UIApplicationLaunchOptionsKey : Any ]?) -> Bool { //通知类型(这里将声音、消息、提醒角标都给加上) let userSettings = UIUserNotificationSettings (types: [.alert, .badge, .sound], categories: nil ) if (( UIDevice .current.systemVersion as NSString ).floatValue >= 8.0) { //可以添加自定义categories JPUSHService .register(forRemoteNotificationTypes: userSettings.types.rawValue, categories: nil ) } else { //categories 必须为nil JPUSHService .register(forRemoteNotificationTypes: userSettings.types.rawValue, categories: nil ) } // 启动JPushSDK JPUSHService .setup(withOption: nil , appKey: "7b96331738ea713195698fd" , channel: "Publish Channel" , apsForProduction: false ) return true } func application(_ application: UIApplication , didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data ) { //注册 DeviceToken JPUSHService .registerDeviceToken(deviceToken) } func application(_ application: UIApplication , didReceiveRemoteNotification userInfo: [ AnyHashable : Any ], fetchCompletionHandler completionHandler: @escaping ( UIBackgroundFetchResult ) -> Void ) { //增加IOS 7的支持 JPUSHService .handleRemoteNotification(userInfo) completionHandler( UIBackgroundFetchResult .newData) } func application(_ application: UIApplication , didFailToRegisterForRemoteNotificationsWithError error: Error ) { //可选 NSLog ( "did Fail To Register For Remote Notifications With Error: \(error)" ) } //.......... } |
(2)ViewController.swift(别名注册相关)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import UIKit class ViewController : UIViewController { @IBOutlet weak var textField: UITextField ! @IBOutlet weak var textView: UITextView ! override func viewDidLoad() { super .viewDidLoad() } //按钮点击 @IBAction func btnTouchUp(_ sender: AnyObject ) { //获取别名 let alias = textField.text //注册别名 JPUSHService .setAlias(alias, callbackSelector: #selector(tagsAliasCallBack(resCode:tags:alias:)), object: self ) } //别名注册回调 func tagsAliasCallBack(resCode: CInt , tags: NSSet , alias: NSString ) { textView.text = "响应结果:\(resCode)" } override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() } } |
2,服务端代码(index.php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<? //引入代码 require 'JPush/autoload.php' ; use JPush\Client as JPush; if (isset( $_POST [ "message" ])){ //初始化 $app_key = "7b528338438ec719495768fd" ; $master_secret = "32da4a2c06d27b26d12c5628" ; $client = new JPush( $app_key , $master_secret ); //简单的推送样例 $result = $client ->push() ->setPlatform( 'ios' , 'android' ) ->addAlias( $_POST [ "alias" ]) ->setNotificationAlert( $_POST [ "message" ]) ->options( array ( "apns_production" => true //true表示发送到生产环境(默认值),false为开发环境 )) ->send(); echo 'Result=' . json_encode( $result ); } ?> <html> <head> </head> <body> <form action= "index.php" method= "post" > 别名:<input type= "text" name= "alias" /><br> 消息:<input type= "text" name= "message" /> <button type= "submit" >推送广播通知</button> </form> </body> </html> |
http://www.hangge.com/blog/cache/detail_1268.html
Swift - JPush极光推送的使用3(根据Alias别名,给某个指定用户发推送)(转)的更多相关文章
- 用JPUSH极光推送实现服务端向安装了APP应用的手机推送消息(C#服务端接口)
这次公司要我们做一个功能,就是当用户成功注册以后,他登录以后要收到消息,当然这个消息是安装了我们的手机APP应用的手机咯. 极光推送的网站的网址是:https://www.jpush.cn/ 极光推送 ...
- Android消息推送——JPush极光推送
刚看了一篇关于Android消息推送评测总结的博客http://www.cnblogs.com/logan/p/4514635.html: 自己也对原学过的JPush极光进行一下小结,方便后续工作使用 ...
- atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99
atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99 1.1. 云推送有推送次数或频率的限制吗? 1 1.2. 推送的消息长度 1 1.3. 离线消 ...
- 用Jpush极光推送实现抓取特定某个用户Log到七牛云服务器
场景 我们的app常常会出现某个特定用户的手机出现异常情况,(注意不是所有用户,特定机型特定用户)如果用友盟,那么多log你也抓不完 ,看不到log就无法解决问题. 那么问题来了,如何实现对特定某个用 ...
- 使用JPush(极光推送)实现远程通知
使用JPush(极光推送)实现远程通知 远程推送是APP 必备的功能, 现在第三方的 SDK 已经做的非常完备了, 在 iOS10.0出来之后, 极光推送也及时更新了他的 SDK, 今天小试了一下效果 ...
- Laravel 集成 JPush 极光推送指北
我是一个 Laravel 小白,我是一个 Laravel 小白,我是一个 Laravel 小白(默念三遍再往下读,如果非小白就不用看了). Laravel 使用 Composer 来管理代码依赖.所以 ...
- Springboot项目集成JPush极光推送(Java SDK)
1.由于项目的需求,需要在Android APP上实现消息推送功能,所以引用了极光推送(官网:https://www.jiguang.cn/, 文档:http://docs.jiguang.cn/) ...
- JPush极光推送Java服务器端API
// 对android和ios设备发送 JPushClient jpush = new JPushClient(masterSecret, appKey); // 对android和ios设备发送 ...
- jpush极光推送知识点总结
1.jpushClient.sendPush(pushpayLoad):是发送推送的主要方法 2.pushpayload是具体推送消息.推送对象范围的封装 3.jpushClient.sendPush ...
随机推荐
- summernote 如何设置为只读?
从 summernote 的文档看到以下信息. disable, enable You can disable editor by API. $('#summernote').summernote(' ...
- MySQL中drop,truncate 和delete的区别
注意:这里说的delete是指不带where子句的delete语句 相同点: truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: truncate和 del ...
- 解决mysql 8 安装后命令行可以连接,navicat不能连接的问题
错误代码: client does not support authentication 解决办法: 1 使用命令行进入数据库 2 选着数据库 mysql --> user mysql 3 ...
- vuex基本熟悉与使用
vuex的入门与使用讲解 官网:https://vuex.vuejs.org/zh/guide/state.html 定义:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式 ...
- Dynamics CRM 2011 怎么根据记录的etc参数值找到实体英文名和根据etc参数值或英文名称找到其实体中文名称
一.平常我们可以打开CRM2011一条已创建的记录,通过JScript方法获取实体英文名的方法是:按F12,输入contentIFrame.Xrm.Page.data.entity.getEntity ...
- ES(4): ES Cluster Security Settings
目录: ES安全事件回顾 ES集群安全建议 安全访问配置 license更新 ES安全事件回顾 下面是白帽汇监测到针对全球使用广泛的全文索引引擎Elasticsearch的勒索事件: 2017年1月1 ...
- 【Active入门】ActiveMQ学习-1
基本概念: 接收者: package com.ll.activemq; import java.util.Collection; import java.util.Iterator; import j ...
- CentOS 6.4 添加永久静态路由所有方法汇总(原创)
转摘,原文章地址:http://blog.sina.com.cn/s/blog_828e50020101ern5.html 查看路由的命令route -n CentOS添加永久静态路由 在使用双网卡, ...
- java.lang.IllegalStateException: Fragment bb{42261900} not attached to Activity
A.处理异常java.lang.IllegalStateException: Fragment bb{42261900} not attached to Activity处理方式:由于在线程中调用Fr ...
- Spring mvc的web.xml配置详解
1.spring 框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name) 2.在web.xml配置监听器ContextLoaderListener(l ...