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 ...
随机推荐
- [脚本] 一个用于BMP到EPS转换的BAT脚本实现(需要安装bmeps)
最近用LaTeX写文章, 图片需要使用eps格式. 如果你安装了bmeps这个工具(一般你装了CTeX就自带这个工具的), 可以在需要转换的目录打开CMD窗口, 然后输入: bmeps -c a.jp ...
- ZZ ? ?: 回?做??的十年技?生涯(?文,非??慎入)
元音字母 身份 用户 文章 1409 星座 双子座 积分 14420 等级 灵樨(8) 发信人: fafe (元音字母), 信区: WorkLife 标 题: 回顾做码农的十年技术生涯(长文,非码农 ...
- mibox connections
tcp 0 0 :::52549 :::* LISTEN 4398/net.myvst.v2:mt ...
- es 之 Symbol
ES5 的对象属性名都是字符串,这容易造成属性名的冲突.比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突.如果有一种机制,保证 ...
- Spring Boot 整合 FastDFS 客户端
原文地址:Spring Boot 整合 FastDFS 客户端 博客地址:http://www.extlight.com 一.前言 前两篇介绍整体上介绍了通过 Nginx 和 FastDFS 的整合来 ...
- github高效搜索使用总结
swoole 普通搜索 in:name swoole 搜索仓库的名称,搜索仓库名称包含swoole关键字的所有项目 in:description swoole 搜索描述中包含swoole关键字的项目 ...
- VS起始页不显示最近使用的项目解决方案
前段时间换了一家公司,做ASP.NET开发,让我郁闷的是VS的起始页总是不显示最近使用项目,起先没在意,后来觉得越来越不方便了,然后本着内事不决问百度,外事不决问谷歌的态度,我就百了下~,结果还真遇到 ...
- 360 杀毒几K每秒的IO读取,SO MAD
在没有用360杀毒扫描的状态下,从任务管理器中查看,居然有几K每秒的IO读取 . 好卡,直接卸载.
- Logstash之三:命令行中常用的命令
-f:通过这个命令可以指定Logstash的配置文件,根据配置文件配置logstash -e:后面跟着字符串,该字符串可以被当做logstash的配置(如果是“” 则默认使用stdin作为输入,std ...
- Java堆外内存之三:堆外内存回收方法
一.JVM内存的分配及垃圾回收 对于JVM的内存规则,应该是老生常谈的东西了,这里我就简单的说下: 新生代:一般来说新创建的对象都分配在这里. 年老代:经过几次垃圾回收,新生代的对象就会放在年老代里面 ...