2012-10-11 51 views
6

Tôi đang đăng các giá trị tên người dùng, mật khẩu và được đọc thành .net webservice. Nhưng nó không nhận được bất kỳ giá trị mã thông báo thiết bị nào. Tôi đang sử dụng mã dưới đây.cách nhận mã thông báo thiết bị?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert ]; 
} 

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{  
    NSLog(@"didRegisterForRemoteNotificationsWithDeviceToken: %@", deviceToken); 
    NSString *dt = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]; 
    dt = [dt stringByReplacingOccurrencesOfString:@" " withString:@""]; 
    self.DeviceToken=dt; 
    NSLog(@"~~~~devToken(dv)=%@",deviceToken); 
} 

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error 
{  
    NSLog(@"Failed to get token, error: %@", error); 
} 

Nhưng trong giao diện điều khiển nó cho thấy

Failed to get token, error: Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x1a0810 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application

Bất kỳ ý tưởng? Cảm ơn trước!

Trả lời

1

Bạn đã kích hoạt thông báo push trong tập tin tạm thời của bạn?

Đi qua the tutorial để kiểm tra xem bạn đã làm đúng

Trước tiên hãy thử gửi thông báo đẩy vào điện thoại từ máy Mac của bạn, như đã đề cập trong hướng dẫn. Bạn sẽ cần một tập tin pem trên phía máy chủ mà bạn cần để tạo ra từ iOS Portal :)

+0

hi Tôi nhận được mã thông báo thiết bị nhưng không thể đăng các giá trị lên webservice.Trong bảng điều khiển, nó hiển thị -JSONGiá trị thất bại. Theo dõi lỗi là: ( "Tên miền lỗi = org.brautaset.JSON.ErrorDomain Code = 3 \" Ký tự dẫn đầu không được công nhận \ "UserInfo = 0x15e880 {NSLocalizedDescription = Ký tự đứng đầu không được công nhận} Có vấn đề gì? – fathik

1

Tôi giả sử bạn đang chạy/gỡ lỗi trên thiết bị vì bạn sẽ gặp lỗi khác khi cố đăng ký mã thông báo đẩy từ trình mô phỏng. Chỉ muốn để có được điều đó ra khỏi con đường.

Điều đó đang được nói, điều thường gây ra lỗi mà bạn thấy là thông báo đẩy không được bật trong Hồ sơ cấp phép mà bạn đã chọn. Bây giờ, bạn có thể đã truy cập vào Cổng cấp phép iOS và bật Push cho ID ứng dụng của bạn (cũng lưu ý rằng nếu bạn đã bật Đẩy cho hồ sơ phát triển hoặc phân phối của mình). Tuy nhiên, sau khi làm điều đó, bạn phải đi vào và 'bẩn' Hồ sơ cấp phép của bạn cho Cổng cấp phép để tạo Hồ sơ cấp phép mới có các quyền lợi đẩy trong đó.

Bằng cách 'làm bẩn', ý tôi là đi vào và thay đổi một số cài đặt của cấu hình để buộc tạo lại. Bạn sẽ biết nếu bạn 'bẩn' nó đủ nếu khi bạn quay trở lại danh sách Provisioning Profiles, trạng thái tạm thời thay đổi thành 'Pending' trong vài giây trước khi trở thành 'Active' một lần nữa và cho phép bạn tải nó xuống.

Oh, và tôi chỉ thấy điều này mà cũng trả lời câu hỏi (ai đó giúp đỡ nếu tôi liên kết nó sai xin vui lòng): Bundle Identifier and push certificate... aps-environment entitlement error

0
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{  
    NSLog(@"didRegisterForRemoteNotificationsWithDeviceToken: %@", deviceToken); 
    NSString *dt = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]; 
    dt = [dt stringByReplacingOccurrencesOfString:@" " withString:@""]; 
    self.DeviceToken=dt; 

} 
0

Để có được thiết bị token, Chạy ứng dụng trong thiết bị.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Let the device know we want to receive push notifications 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: 
     (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 

    return YES; 
} 

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 
{ 
    NSLog(@"My token is: %@", deviceToken); 
} 

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error 
{ 
    NSLog(@"Failed to get token, error: %@", error); 
} 
+0

Tôi gặp sự cố này .. registerForRemoteNotificationTypes: không được hỗ trợ trong iOS 8.0 trở lên. – CAN

Các vấn đề liên quan