接入华为推送用API给iOS应用发消息时,如何获取access_token?

经常有开发小伙伴向我们提问关于使用华为推送给苹果手机推送消息的问题,那么华为推送到底支不支持苹果手机呢?答案是肯定的。

华为推送服务支持的设备详见下图:

1

苹果手机如何接入华为推送?

首先需要提前准备好开发环境:

1)安装Xcode 10.1或更高版本。

2)安装CocoaPods 1.4.0或更高版本。

3)准备一台用于测试的iPhone设备或者模拟器。

开发环境准备好了,接下来就可以准备开发啦!

在开发应用前,需要在AppGallery Connect中配置相关信息,准备iOS推送消息凭证以及配置iOS推送代理权益。具体准备方法请参见:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/ios-dev-prepare-0000001062940204-V5#ZH-CN_TOPIC_0000001124013099__section113157170295?ha_source=hms1

如何获取Token?

1. 在Xcode中为您的项目启用推送服务,启用“Application Targ > Signing&Capabilities”中的"Push Notifications",勾选“Application Targ > Signing&Capabilities > Background Modes”中的“Remote notifications”和“Background processing”。

2. 向APNs(苹果推送服务)发起用户允许发送推送通知的请求。

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionSound) completionHandler:^(BOOL granted, NSError *_Nullable error) {if (granted) {// 授权成功[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings *_Nonnull settings) {if (settings.authorizationStatus == UNAuthorizationStatusAuthorized) {dispatch_async(dispatch_get_main_queue(), ^{NSLog(@"grant authorized");[[UIApplication sharedApplication] registerForRemoteNotifications];});}}];}
}];

用户需要在应用程序点击“允许”才可以接受推送消息。

21

3.上述步骤成功后,需要获取device token(苹果设备的唯一标识)。获取device token后需要去掉其中的特殊符号,大于等于iOS13版本和小于iOS13版本的device token格式有所差别,可参考如下代码进行处理:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {PushDemoLog(@"suceess get token:{%@}", deviceToken);// 判断iOS设备系统版本if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 13) {if (![deviceToken isKindOfClass:[NSData class]]) {return;}const unsigned *tokenBytes = (const unsigned *)[deviceToken bytes];NSString *strToken = [NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x",ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]),ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]),ntohl(tokenBytes[6]), ntohl(tokenBytes[7])];PushDemoLog(@">=ios13 My FINAL TOKEN is:%@", strToken);APN_TOKEN = strToken;return;} else {NSString *token = [NSString stringWithFormat:@"%@", deviceToken];token = [token stringByReplacingOccurrencesOfString:@"<" withString:@""];token = [token stringByReplacingOccurrencesOfString:@">" withString:@""];token = [token stringByReplacingOccurrencesOfString:@" " withString:@""];PushDemoLog(@"My FINAL TOKEN is %@", token);APN_TOKEN = token;}
}

4.成功处理device token后将其作为入参获取华为推送服务Token:

NSString *apnsToken = @"yourApnsToken";
NSString *huaweiToken = [[HmsInstanceId getInstance] getToken:apnsToken];

更多应用开发步骤参见:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/ios-dev-guides-0000001062462396?ha_source=hms1

 

问题分享:使用华为推送给苹果手机推送消息,无法获取到access_token怎么解?

这是华为开发者论坛一位开发小伙伴的提问:我想使用华为的消息推送服务,给苹果手机推送消息,申请应用后,缺少App Secret,无法获取到access_token,怎么解?

  • 推送接口以access_token鉴权,如图:

2

 

  • 获取access_token的接口,如图:

2

  • 项目配置不显示app secret,如图:

6

  • 看安卓应用的配置,相同位置是有app secret的,如图:

8

解决方法

在相同项目下再建一个Android的应用,用Android应用的appId和appSecret去申请access_token就可以了。

通过这个方法获取到的access_token就可以为苹果应用推送消息。

我们的服务在持续优化更新中,将会为开发者带来更便捷的操作体验,敬请期待~

欲了解更多详情,请参阅华为推送服务官网:https://developer.huawei.com/consumer/cn/hms/huawei-pushkit%20?ha_source=hms1

 

 

>>访问华为开发者联盟官网,了解更多相关内容

>>获取开发指导文档

>>华为移动服务开源仓库地址:GitHub、Gitee

关注我们,第一时间了解华为移动服务最新技术资讯~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/49587.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[个性化设置]win11终端美化

1.开始界面搜索 终端 &#xff0c;右键点击运行框的边框&#xff0c;打开设置 2.点击左下角 打开JSON文件 3. 进入配置文件&#xff0c;下滑找到 defaults 4.在大括号内添加以下代码↓ "backgroundImage": " ", //图片路径 "backgroundImage…

Win11运行安卓超详细教程!芜湖起飞!

一、前提 Windows 11 版本号为 Build 22000.xxx 或更高版本。 您的电脑硬件 BIOS/UEFI 支持虚拟化功能。 二、支持 本教程适用于 Windows 11 正式版和预览版&#xff0c;包括 Dev 频道、Beta 频道和 Release Preview 频道。 本教程适用于搭载 Intel 和 AMD 等处理器的 Windows…

电脑技巧:分享8个Win11系统必备小技巧

目录 1、让任务栏显示“右键菜单” 2、任务栏置顶 3、还原经典右键菜单 4、Win11版任务管理器 5、新版AltTab 6、开始菜单不再卡 7、为Edge浏览器添加云母效果 8、自动切换日/夜模式 Win11在很多地方都做了调整&#xff0c;但由于涉及到诸多旧有习惯&#xff0c;再加上…

如何在工作中利用Prompt高效使用ChatGPT

导读 AI 不是来替代你的&#xff0c;是来帮助你更好工作。用better prompt使用chatgpt&#xff0c;替换搜索引擎&#xff0c;让你了解如何在工作中利用Prompt高效使用ChatGPT。 01背景 现在 GPT 已经开启了人工智能狂潮&#xff0c;不过是IT圈&#xff0c;还是金融圈。 一开…

操作系统:分享Win11几个实用小技巧,赶快收藏吧

目录 1、让任务栏显示“右键菜单” 2、任务栏置顶 3、还原经典右键菜单 4、Win11版任务管理器 5、新版AltTab 6、开始菜单不再卡 7、为Edge浏览器添加云母效果 8、自动切换日/夜模式 Win11在很多地方都做了调整&#xff0c;但由于涉及到诸多旧有习惯&#xff0c;再加上前期Bug的…

【高效开发工具系列】Windows 怎么使用 telnet

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

Windows系统工具MSG的使用,给局域网内的其他电脑发消息

msg 将消息发送给用户。MSG {username | sessionname | sessionid | filename | *}[/SERVER:servername] [/TIME:seconds] [/V] [/W] [message]username 标识指定的用户名。sessionname 会话名。sessionid 会话 ID。filename 识别这样一…

什么是 prompts, completions, tokens and meta-learning /in-context-learning

从字面上看&#xff0c;任何文本都可以用作提示(prompts)——输入一些文本然后得到一些文本。 我们虽然知道 GPT-3 对随机字符串的处理很有趣&#xff0c;但是编写一个有效的提示才能更好的真正的让GPT理解我们要它做什么。 提示&#xff08;prompts&#xff09; Prompt是怎么…

ChatDoctor本地部署应用的实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

电信青年员工踏上三千里数字化追梦之旅,数字员工为电信高质量发展注智赋能

导语&#xff1a; 近年来&#xff0c;广西电信紧紧围绕集团战略&#xff0c;聚焦产业数字化发展机遇&#xff0c;加强前瞻性技术研究和人工智能产业应用研究&#xff0c;为夯实高质量发展增添科技动力。 在数字中国建设的大背景下&#xff0c;广西电信全资子公司广西壮族自治区…

AI加速财务智能化,实在智能、优贲财税、楚云科技共探数字员工新未来

作为财务发展的最新前沿&#xff0c;智能财务正在逐步渗入日常工作中&#xff0c;加快企业数字化转型步伐&#xff0c;促进我国财务信息化建设的快速发展。在当前形势下&#xff0c;企业应如何进行数字化转型以重塑业务、财务和税务等关系&#xff0c;形成管理闭环&#xff0c;…

AI安全03:如何监督AI

前言 菜鸟入门中~请ChatGPT老师继续上文讨论的话题&#xff1a;如果AI监督AI&#xff0c;甚至AI攻击AI&#xff0c;那么人类应该为AI的行为设置哪些监控措施&#xff1f; 写在前面&#xff1a; 1 以下讨论均针对自然语言模型~ 2 是个菜鸟的空想&#xff0c;肯定会有说错的地…

卡塔尔世界杯起航了

卡塔尔世界杯&#xff0c;从申请成功之初&#xff0c;就充满了争议&#xff0c;卡塔尔夏天最低温度是35度&#xff0c;经过协调&#xff0c;挪到了冬天举行&#xff0c;但这正是欧洲各国联赛最忙的时候&#xff0c;导致很多球员不得不一周双赛&#xff0c;调整空间有限&#xf…

【我爱世界杯】伪球迷眼里的世界杯

大家好&#xff0c;我是【架构师李肯】&#xff0c;一个专注于嵌入式物联网架构设计的攻城狮。 文章目录 按理说聊一聊我和足球第一次热衷于关注世界杯后ying情时代的卡塔尔世界杯祝愿世界杯 按理说 嗯&#xff0c;按理说&#xff0c;我一个程序猿&#xff0c;既不踢球&#x…

卡塔尔世界杯︱足球游戏的打开方式

距离卡塔尔世界杯开始还有一周的时间&#xff0c;你为此做好什么准备了吗&#xff1f; 一些狂热的球迷为了追求极致的观感和身临其境感&#xff0c;不惜在电视、音响上下重金&#xff1b;也有一些为了享受世界杯热闹氛围的人&#xff0c;囤好零食&#xff0c;或是和好友早早约…

世界杯数据清单:真球迷看球必备,伪球迷速成指南(附数据amp;论文)

来源&#xff1a;大数据 本文共5583字&#xff0c;建议阅读10分钟。 本文基于数据从球队、球员、比赛三个方面与你聊世界杯的热门知识与冷知识&#xff0c;全面解读2018世界杯。 [ 导读 ]每隔4年都有那么1个月&#xff0c;无论是线上还是线下&#xff0c;不管是真球迷还是真球盲…

卡塔尔世界杯——你认为今年谁会是冠军?

本届世界杯从小组赛开始就爆冷不断&#xff0c;阿根廷在首场失利&#xff0c;德国小组赛没出线&#xff0c;五星巴西被非洲冠军摩洛哥给干趴下了&#xff0c;C罗止步4强&#xff0c;39岁的莫德里奇也被裁判终结了&#xff0c;谁才能是笑道最后的队伍&#xff1f;莫德里奇率领的…

上传用户头像-后端

每个网站中都有用户头像的上传功能&#xff0c;刚刚再刷后springboot项目有些心得分享一下&#xff0c;如某站上的电脑商城的项目为例&#xff0c;先给出它的数据库 其中avatar字段名就是用户存储在服务器端的图片的地址&#xff0c;这个表在上传用户头像时要更改的字段名是修改…

头像上传功能

头像上传 A> MultipartFile接口 MultipartFile接口常用的的API见下表&#xff1a; 方法功能描述String getOriginalFilename()获取上传文件的原始文件名&#xff0c;即该文件在客户端中的文件名boolean isEmpty()判断上传的文件是否为空&#xff0c;当没有选择文件就直接…