2012-01-25 43 views
11

Chiến lược được sử dụng phổ biến nhất là gì? Tôi đang cố gắng hiện nay để thực hiện như sau:Thông báo đẩy iOS - cách xử lý ID thiết bị?

On bắt đầu ứng dụng:

  • trước Get lưu Id thiết bị từ một số lưu trữ địa phương
  • lấy ID thiết bị
  • Nếu thay đổi, lưu Id mới, gửi cập nhật lên máy chủ

Đây có phải là cách tiếp cận phù hợp không? Cách tốt nhất để lưu trữ Id thiết bị cục bộ là gì?

Trả lời

5

Thực tiễn tốt nhất là gửi mã thông báo thiết bị đẩy (không giống với mã duy nhấtIdentifier được Serg Shiyan đề cập) cho Apple mỗi khi ứng dụng bắt đầu. Điều này sẽ cho phép Apple biết ứng dụng của bạn vẫn hoạt động.

Xem đăng ký thông báo đẩy từ xa:

Bằng cách yêu cầu các thiết bị token và đi qua nó để các nhà cung cấp mỗi khi ra mắt ứng dụng của bạn, bạn sẽ giúp đảm bảo rằng các nhà cung cấp có dấu hiệu hiện tại cho thiết bị.

từ Local and Push notifications Programming guide

Theo kinh nghiệm của tôi có một số lý do tại sao thẻ push có thể hết hiệu lực. Chúng bao gồm các ứng dụng deinstalls và trộn các ứng dụng với các chứng chỉ khác nhau (dev, ad-hoc chạy trên sandbox/các máy chủ push trực tiếp). Nó sẽ giúp bạn tiết kiệm một số gỡ lỗi bằng cách gửi các mã thông báo trên bắt đầu mỗi lần như đề nghị.

Vì vậy, về cơ bản không có lý do gì để lưu trữ mã thông báo đẩy khác ngoài bộ nhớ trong khi ứng dụng của bạn đang chạy. Bạn chỉ cần yêu cầu một cái mới (có thể là một cái mới) vào lần tiếp theo ứng dụng của bạn bắt đầu.

+0

Cảm ơn bạn. Điều duy nhất là tôi vẫn cần một số mã thông báo để chuyển đến máy chủ để xác định người dùng/thiết bị và tôi vẫn cần phải giữ nó trên thiết bị bằng cách nào đó. Tôi đoán mặc định của người dùng. –

+0

Có, việc xác định người dùng có thể được thực hiện tốt nhất bằng cách sử dụng một cơ chế khác (mã thông báo thiết bị, tài khoản người dùng, v.v.), được lưu trữ trong móc khóa, mặc định người dùng hoặc thậm chí iCloud. Bằng cách này, bạn thậm chí có thể có các tình huống mà cùng một người dùng có nhiều mã thông báo đẩy được đăng ký nếu anh ấy đang sử dụng ứng dụng trên nhiều thiết bị. –

3

"Một chuỗi chữ và số duy nhất cho mỗi thiết bị dựa trên các chi tiết phần cứng khác nhau. (Read-only) (Không dùng nữa trong iOS 5.0. Thay vào đó, tạo ra một định danh duy nhất đặc trưng cho ứng dụng của bạn.)

@property (nonatomic, readonly, retain) NSString *uniqueIdentifier 

cân nhắc đặc biệt Để tạo một định danh duy nhất cụ thể cho ứng dụng của bạn, bạn có thể gọi hàm CFUUIDCreate để tạo UUID và ghi nó vào cơ sở dữ liệu mặc định bằng cách sử dụng lớp NSUserDefaults. " (Apple Inc)

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