接入華為推快遞用API給iOS應用發消息時如何獲取accesstoken,ios推快遞設備token有效時間接入華為推快遞用API給iOS應用發消息時如何獲取accesstoken經常有開發小伙伴向我們提問關于使用華為推快遞給蘋果手機推快遞消息的問題,那么首先華為推國際快遞底支不支持蘋果手機呢?答案可以肯定地告訴你:可......
經常有開發小伙伴向我們提問關于使用華為推快遞給蘋果手機推快遞消息的問題,那么首先華為推國際快遞底支不支持蘋果手機呢?答案可以肯定地告訴你:可以。
首先你需要提前準備好開發環境:
1)安裝Xcode 10.1或更高版本。
2)安裝CocoaPods 1.4.0或更高版本。
3)準備一臺用于測試的iPhone設備或者模擬器。
開發環境準備好了,接下來就可以準備開發啦!
在開發應用前,需要在AppGallery Connect中配置相關信息,準備iOS推快遞消息憑證以及配置iOS推快遞代理權益。具體準備方法請參見:https://developer.huawei.com/consumer/cn/doc/development/HMSCoreGuidesV5/iosdevprepare0000001062940204V5#ZHCN_TOPIC_0000001124013099__section113157170295 ha_source=hms1
1.在Xcode中為您的項目啟用推快遞服務,啟用“Application TargSigningCapabilities”中的Push Notifications,勾選“Application TargSigningCapabilitiesBackground Modes”中的“Remote notifications”和“Background processing”。
2.向APNs(蘋果推快遞服務)發起用戶允許發快遞推快遞通知的請求。
```[[UIApplicationsharedApplication]registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlertUIRemoteNotificationTypeBadgeUIRemoteNotificationTypeSound)];UNUserNotificationCenter*center=[UNUserNotificationCentercurrentNotificationCenter];[centerrequestAuthorizationWithOptions:(UNAuthorizationOptionAlertUNAuthorizationOptionBadgeUNAuthorizationOptionSound)completionHandler:^(BOOLgranted,NSError*_Nullableerror){if(granted){//授權成功[centergetNotificationSettingsWithCompletionHandler:^(UNNotificationSettings*_Nonnullsettings){if(settings.authorizationStatus==UNAuthorizationStatusAuthorized){dispatch_async(dispatch_get_main_queue(),^{NSLog(@grantauthorized);[[UIApplicationsharedApplication]registerForRemoteNotifications];});}}];}}];
```
用戶需要在應用程序點擊“允許”才可以接受推快遞消息。
3.上述步驟成功后,需要獲取device token(蘋果設備的唯一標識)。獲取device token后需要去掉其中的特殊符號,大于等于iOS13版本和小于iOS13版本的device token格式有所差別,可參考如下代碼進行處理:
```
(void)application:(UIApplication*)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{PushDemoLog(@suceessgettoken:{%@},deviceToken);//判斷iOS設備系統版本if([[[UIDevicecurrentDevice]systemVersion]floatValue]=13){if(![deviceTokenisKindOfClass:[NSDataclass]]){return;}constunsigned*tokenBytes=(constunsigned*)[deviceTokenbytes];NSString*strToken=[NSStringstringWithFormat:@%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(@=ios13MyFINALTOKENis:%@,strToken);APN_TOKEN=strToken;return;}else{NSString*token=[NSStringstringWithFormat:@%@,deviceToken];token=[tokenstringByReplacingOccurrencesOfString:@withString:@];token=[tokenstringByReplacingOccurrencesOfString:@withString:@];token=[tokenstringByReplacingOccurrencesOfString:@withString:@];PushDemoLog(@MyFINALTOKENis%@,token);APN_TOKEN=token;}}
```
4.成功處理device token后將其作為入參獲取華為推快遞服務Token:
```
NSString*apnsToken=@yourApnsToken;NSString*huaweiToken=[[HmsInstanceIdgetInstance]getToken:apnsToken];
```
更多應用開發步驟參見:
https://developer.huawei.com/consumer/cn/doc/development/HMSCoreGuides/iosdevguides0000001062462396?ha_source=hms1
接下來給大家分享一位開發者在論壇上提問關于蘋果手機接入華為push的問題:“我想使用華為的消息推快遞服務,給蘋果手機推快遞消息,申請應用后,缺少App Secret,無法獲取到access_token,怎么解“
推快遞接口以access_token鑒權,如圖:
獲取access_token的接口,如圖:
我的項目配置,不顯示app secret,如圖:
看安卓應用的配置,相同位置是有app secret的,如圖:
解決方法:
需要在相同項目下再建一個Android的應用,用Android應用的appId和appSecret去申請access_token就可以了。
那么,用安卓應用獲取到access_token為蘋果應用推快遞消息,是可以的嗎?
答案依舊是——可以的!
特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與ESG跨境電商聯系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部