Các ví dụ sau đây sẽ giúp bạn triển khai mã phiên bản trong ứng dụng iOS. Lưu ý rằng những ví dụ này sử dụng phạm vi GCM mà bạn sẽ dùng để quản lý mã thông báo cho ứng dụng iOS cho Gửi thông báo qua đám mây của Firebase.
Thiết lập các phần phụ thuộc CocoaPods
Mã phiên bản sử dụng CocoaPods để cài đặt và quản lý các phần phụ thuộc. Mở cửa sổ dòng lệnh và chuyển đến vị trí của Dự án Xcode cho ứng dụng của bạn. Nếu bạn chưa tạo Podfile cho ứng dụng của bạn, hãy tạo một tài khoản ngay bây giờ:
pod init
Mở Podfile đã tạo cho ứng dụng của bạn và thêm nội dung sau đây:
pod 'FirebaseInstanceId'
Lưu tệp và chạy:
pod install
Thao tác này sẽ tạo một tệp .xcworkspace
cho ứng dụng của bạn. Sử dụng tệp này cho tất cả
phát triển ứng dụng của mình trong tương lai.
Tạo mã thông báo
Để tạo mã thông báo, bạn cần có Mã dự án do Google Developers Console tạo.
NSString *authorizedEntity = PROJECT_ID;
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
NSDictionary *options = @{
@"apns_token" : <APNS Token data>,
// 1 if APNS sandbox token else 0
@"apns_sandbox" : @(1),
};
[[FIRInstanceID instanceID] tokenWithAuthorizedEntity:authorizedEntity
scope:scope
options:options
handler:
^(NSString * _Nullable token, NSError * _Nullable error) {
// ...
}];
Quản lý mã thông báo và mã phiên bản
Mã phiên bản cho phép bạn xoá và làm mới mã thông báo.
Xoá mã thông báo và mã phiên bản
NSString *authorizedEntity = PROJECT_ID; // Project ID
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
FIRInstanceIDDeleteTokenHandler handler = ^void(NSError *error) {
if (error) {
// Failed to delete the token. Check error and do an exponential
// backoff to retry again.
} else {
// Successfully deleted the token.
}
};
[[FIRInstanceID instanceID]
deleteTokenWithAuthorizedEntity:authorizedEntity
scope:scope
handler:handler];
Bạn cũng có thể xoá chính mã phiên bản. Trong trường hợp này, bạn sẽ gọi vào lần tiếp theo
getInstance()
, bạn sẽ nhận được một mã phiên bản mới:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Làm mới mã
Dịch vụ mã phiên bản có thể tạo hoặc tạo lại mã thông báo. Khi điều này xảy ra,
hệ thống sẽ gửi thông báo. Bạn có thể nghe thông báo này bằng cách thêm
trình quan sát cho các thông báo có tên kFIRInstanceIDTokenRefreshNotification
.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Ví dụ: bạn phải tạo trình quan sát này trước khi tạo mã thông báo
trước khi gọi [FIRApp configure]
. Có thể truy xuất mã thông báo mới nhất bằng
đang gọi [[FIRInstanceID instanceID] token]
.
Lưu ý rằng để quan sát việc tạo mã thông báo cho giải pháp Gửi thông báo qua đám mây, có một uỷ quyền cụ thể có sẵn.