[英]APNS push notification from server
我有用JAVA編寫的網絡應用,我想從服務中推送通知。 我無法使用來自瀏覽器的本地通知,因為我的目標是iOS(平板電腦)。 所以我想使用APNs。 如果我想向設備發送消息,則需要此設備的令牌;)。 所以我的問題是。
編輯:我沒有一件事。 無需任何本機解決方案就可以獲取設備的令牌。 例如,平板電腦連接到外部站點,執行某些操作,我們希望使用通知進行答復。 以及如何獲取令牌來發送此消息。
不幸的是,如果沒有iOS設備上的本機應用程序,則無法使用APNS。 推送通知令牌對於每台設備上的每個應用程序都是唯一的-因此,從一個應用程序獲得的令牌不能與同一設備上的另一應用程序一起使用(這是一個例外,同一開發人員的應用程序可以共享令牌)。
此外,推送通知服務依賴於由開發人員使用Apple開發人員門戶管理的數字證書。
最后,當推送通知發送到iOS設備時,它實際上會傳遞到相應的應用程序進行處理-因此,如果設備上沒有本機應用程序,則沒有任何內容可以處理該通知。
您可以在Apple的編程指南中獲得有關APNS編程的詳細信息
您可以從此方法獲取設備令牌。 將此方法放在appdelegate.m類中。如果您在虛擬設備(模擬器)中運行應用程序,請確保在真實設備中運行iOS應用程序,然后找不到設備令牌,
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSString *token = [[deviceToken description] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"<>"]];
token = [token stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"content---%@", token);
}
為了獲得此設備令牌,ios應用程序將必須請求注冊推送通知服務,這將導致一個對話框,詢問是否允許此應用程序向您發送通知(如果iOS用戶說“是”,則設備將注冊推送通知,並會提供設備令牌。
該設備令牌必須由ios應用開發者發送到服務器,然后只有服務器可以使用此設備令牌並將其發送到APNS。
通過以下方法從ios設備注冊推送通知,
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge];
如果ios用戶允許,則將調用以下方法,該方法將為您提供設備令牌,該令牌需要發送到服務器以從服務器發布通知。
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSString * deviceTokenstring = [[[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]] stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"device token :%@",deviceTokenstring);
NSURLConnection *urlConnection = [NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:REMOTENOTIFICATION_URL,deviceTokenstring]]] delegate:self];
[urlConnection start];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.