Các ví dụ sau đây sẽ giúp bạn triển khai Mã nhận dạng phiên bản trong một ứng dụng iOS. Xin lưu ý rằng các ví dụ này sử dụng phạm vi GCM. Bạn sẽ dùng phạm vi này để quản lý mã thông báo cho một ứng dụng iOS cho Giải pháp 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
Instance ID 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 rồi 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 mình, hãy tạo ngay:
pod init
Mở Podfile được tạo cho ứng dụng của bạn rồi thêm nội dung sau:
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. Hãy sử dụng tệp này cho tất cả các hoạt động phát triển ứng dụng trong tương lai.
Tạo mã thông báo
Bạn cần có Mã dự án do Google Developers Console tạo để tạo mã thông bá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ã nhận dạng 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ã nhận dạng 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ã nhận dạng phiên bản. Trong trường hợp đó, vào lần tiếp theo gọi getInstance()
, bạn sẽ nhận được một Mã nhận dạng phiên bản mới:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Mã làm mới
Dịch vụ Instance ID có thể tạo hoặc tạo lại mã thông báo. Khi điều này xảy ra, bạn sẽ nhận được thông báo. Bạn có thể nghe thông báo này bằng cách thêm một đối tượng theo dõi cho các thông báo có tên là kFIRInstanceIDTokenRefreshNotification
.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Bạn phải tạo trình theo dõi này trước khi tạo mã thông báo, ví dụ: trước khi gọi [FIRApp configure]
. Bạn có thể truy xuất mã thông báo mới nhất bằng cách gọi [[FIRInstanceID instanceID] token]
.
Xin lưu ý rằng để theo dõi quá trình tạo mã thông báo cho Cloud Messaging, bạn có thể dùng một delegate cụ thể.