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