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 ...
随机推荐
- 日志挖掘(logminer)
转. 如何使用logminer分析Oracle 联机日志 笔者在工作中经常遇到这样的情况:为了追踪数据的变化,需要知道某个表或者表中的某行数据是什么时候被修改的,以及修改前的内容. ...
- vue-cli 打包报错:Unexpected token: punc (()
vue-cli 打包报错: ERROR in static/js/vendor.ed7d2353f79d28a69f3d.js from UglifyJs Unexpected token: punc ...
- hadoop 安装、命令
hadoop安装步骤: 安装java 安装hadoop 下载地址:http://apache.claz.org/hadoop/common/ (说明:该网址current文件夹下,是最新版) hado ...
- yarn 知识点
yarn 与 npm 功能对应表格: 命令 yarn npm 初始化 yarn init npm init 安装项目所有包(注意) yarn npm install 添加 dependencies y ...
- SQL Server的通用分页存储过程 未使用游标,速度更快!
经过一个下午的时间,和我一个同事(绝对是高手)的共同努力下,摸索出了以下的思路: 1.确定存储的输入参数: 1)SQL脚本,该参数接收完整的.正确的SQL检索文本,可将原应用中写好的SQL脚本直接传入 ...
- ProtocolBuffers (二) android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
protobuf 是什么? Protocol buffers是一种编码方法构造的一种有效而可扩展的格式的数据. 谷歌使用其内部几乎RPC协议和文件格式的所有协议缓冲区. 参考文档 http://c ...
- 判断真实ip
#region 获取真实ip /// <summary> /// 获取真实ip /// </summary> ...
- laravel获取参数
测试url如下 http://127.0.0.1:8888/testApp/public/testInput?aaa=1&bbb=2 测试代码 Route::get('/testInput', ...
- 关于 eclipse startexplorer插件 快速打开文件夹
转自:http://basti1302.github.io/startexplorer/ Just drag-and-drop the button to the Eclipse menu bar t ...
- ThinkJava-多态
8.2.1 方法调用绑定 解决的办法就是后期绑定,它的含义就是在运行时根据对象的类型进行绑定.后期绑定也 叫做动态绑定或运行时绑定.如果一种语言想实现后期绑定,就必须具有某种机制,以便在运 行时能判断 ...