Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. iOS SDK
Code

Thông báo đẩy đơn giản trong iOS với back4app

by
Difficulty:BeginnerLength:MediumLanguages:

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Giới thiệu

Trong bài này, tôi sẽ hướng dẫn cho bạn cách làm thế nào để dễ dàng cài đặt thông báo đẩy trong ứng dụng iOS của bạn bằng cách sử dụng một dịch vụ back-end của bên thứ ba dựa trên đám mây. Chúng ta sẽ bắt đầu bằng cách tìm hiểu các bước cần thiết cho bất kỳ ứng dụng iOS để cài đặt các thông báo đẩy và sau đó sử dụng back4app (dựa trên nền tảng Parse) như là dịch vụ back-end của chúng ta.

Hướng dẫn này đòi hỏi bạn đang chạy thấp nhất là Xcode 8 cùng với iOS 10 SDK. Điều này là bởi vì chúng ta sẽ sử dụng framework UserNotifications mới để xử lý các thông báo nhận được trong ứng dụng. Nếu bạn muốn tìm hiểu thêm về framework này, bạn có thể xem hướng dẫn mà tôi đã khái quát nó ở đây:

Bạn cũng sẽ cần một thiết bị iOS thật để chạy ứng dụng của bạn. Điều này là bởi vì, trình giả lập iOS không hỗ trợ các thông báo đẩy.

1. Thiết lập ứng dụng iOS

Để bắt đầu, mở Xcode và tạo ra một dự án mới dựa trên template iOS > Application > Single View Application:

Application Template

Trên màn hình tiếp theo, một khi bạn đã điền đầy đủ tất cả các thông tin (bạn có thể sử dụng thông tin tương tự như tôi), hãy chắc chắn rằng bạn ghi chú lại cái Bundle Identifier vì chúng ta sẽ cần nó sau này:

App Info and Bundle Identifier

Một khi Xcode tạo ra dự án của bạn, mở tập tin AppDelegate.swift của bạn và thêm dòng code sau đây ở đầu:

Tiếp theo, thay thế phương thức application(_:didFinishLaunchingWithOptions:) bằng cái sau đây:

Với code này, chúng ta yêu cầu sự cho phép từ người dùng để hiển thị thông báo sử dụng framework UserNotifications. Nếu người dùng chấp nhận điều này, chúng ta sau đó đăng ký nhận các thông báo từ xa (push) bằng cách gọi phương thức registerForRemoteNotifications.

Đối với bước cuối cùng của việc thiết lập ứng dụng, nhấp vào tên dự án của bạn ở trên cùng của File Navigator trong Xcode và sau đó đi tới tab Capabilities. Trên màn hình này, bật Push Notifications để thêm quyền phù hợp cho ứng dụng của bạn:

Push Notifications Entitlements

2. Thiết lập chúng chỉ

Apple Push Notification Service

Ở một mức độ cơ bản, hệ thống thông báo đẩy cho iOS làm việc thông qua các bước sau:

  • Máy chủ bên thứ ba gửi một lượng thông báo đến Apple Push Notification service (APNs)
  • APNs xác nhận chúng để đảm bảo rằng nó đến từ một nguồn hợp lệ.
  • Nếu hợp lệ, APNs sau đó chuyển tiếp chúng đến đúng thiết bị iOS.

Để xác thực một thông báo, bạn phải tạo một chứng chỉ số. Để bắt đầu quá trình tạo chứng chỉ này, bạn sẽ cần phải đăng nhập bằng Apple ID của bạn trên trang web nhà phát triển của Apple.

Đăng ký một Application Identifier

Một khi bạn đã đăng nhập, nhấp vào Certificates, IDs & Profiles ở phía bên trái:

Developer Portal Sidebar

Trên màn hình tiếp theo, hãy chọn Identifiers > App IDs ở bên trái và sau đó bấm vào nút dấu cộng ở góc phía trên bên phải:

Add New iOS App ID

Khi tạo Application Identifier của bạn, bạn có thể nhập vào bất cứ điều gì bạn muốn cho Name của bạn trong phần App ID Description. Trong mục App ID Suffix, chọn tuỳ chọn Explicit App ID và nhập bundle identifier mà bạn đã tạo ra khi tạo dự án trong trường Bundle ID. Cuối cùng, trong phần App Services, hãy chắc chắn rằng bạn chọn tuỳ chọn hộp kiểm Push Notifications để kích hoạt thông báo đẩy. Một khi bạn đã nhập tất cả các thông tin, cuộn xuống dưới cùng của trang và chọn nút Continue.

Bạn bây giờ sẽ thấy ID ứng dụng mới của bạn như trong hình dưới đây:

App ID Overview

Kiểm tra tất cả các thông tin xem có chính xác hay chưa (ở giai đoạn này, Push Notifications sẽ hiển thị như là Configurable) và sau đó nhấp vào Register ở dưới cùng của màn hình.

Tạo chứng chỉ

Vào Certifications ở bên trái và nhấp vào nút dấu cộng ở góc trên bên phải một lần nữa. Trên màn hình tiếp theo, trong phần Development, chọn tùy chọn Apple Push Notification service SSL (Sandbox) và nhấp vào Continue ở phía dưới.

Trên màn hình tiếp theo, chọn ID ứng dụng của bạn từ trình đơn thả xuống và sau đó nhấp vào Continue.

Nếu bạn không có sẵn một tập tin chứng chỉ đăng nhập theo yêu cầu (CSR), hãy làm theo hướng dẫn ở trên màn hình kế tiếp để tạo ra một cái. Một khi bạn đã có CSR, bạn có thể tiếp tục đến màn hình kế tiếp và tải nó lên.

Khi chứng chỉ của bạn đã được tạo ra, nhấp vào nút Download và sau đó, mở tập tin với ứng dụng Keychain Access trên máy tính của bạn. Nếu bạn được yêu cầu cung cấp keychain để thêm chứng chỉ vào, hãy chọn tùy chọn login.

Vẫn ở trong ứng dụng Keychain Access, chọn tùy chọn Certificates ở phần dưới cùng bên trái:

Keychain Access Sidebar

Bây giờ bạn sẽ cần phải tìm chứng chỉ mà bạn vừa mới tạo ra; nó sẽ có tên là Apple Development IOS Push Services: { Bundle ID }. Một khi bạn đã tìm thấy chứng chỉ của bạn, nhấp chuột phải vào khoá này và chọn tùy chọn Export. Trong popup xuất hiện, bạn có thể đặt tên tập tin là bất cứ điều gì bạn muốn, nhưng đảm bảo rằng File Format được thiết lập thành Personal Information Exchange (.p12):

Certificate Exporting Options

Khi xuất chứng chỉ, đừng đặt mật khẩu cho tập tin p12. Điều này là do back4app yêu cầu một tập tin chứng chỉ không có mật khẩu bảo vệ.

Apple Push Notification service có hai môi trường riêng biệt: một cho các ứng dụng trong phát triển và một cho các ứng dụng trong sản phẩm.

Đến đây, chúng ta đã tạo ra một chứng chỉ được sử dụng cho môi trường phát triển, nó sẽ làm việc khi thử nghiệm ứng dụng của bạn thông qua Xcode.

Khi phát hành ứng dụng trên App Store, bạn sẽ cần phải tạo ra một chứng chỉ sản phẩm. Để làm điều này, lặp lại các bước như chúng ta đã đi qua trong phần tạo ra chứng chỉ trong hướng dẫn này, nhưng hãy chọn Apple Push Notification service SSL (Sandbox & Production). Xin lưu ý rằng trong Keychain Access, tên của chứng chỉ sẽ có dạng: Apple Push Services: { Bundle ID }.

Xin lưu ý rằng bạn có thể không cần phải tạo ra hai chứng chỉ riêng biệt, tùy thuộc vào cài đặt thông báo đẩy mà bạn đang sử dụng. Kể từ đầu năm nay, Apple đã cho phép việc tạo ra một chứng chỉ cho hai mục đích—loại Apple Push Notification service SSL (Sandbox & Production)—có thể được sử dụng để kết nối tới cả hai môi trường. Thật không may, một số dịch vụ như back4app vẫn chưa được cập nhật để tận dụng lợi thế của chứng chỉ mới này và yêu cầu một cái riêng cho từng môi trường.

3. Thiết lập back4app

Đối với hướng dẫn này, chúng ta sẽ sử dụng back4app để cung cấp cài đặt bên phía máy chủ cho thông báo đẩy của chúng ta. back4app là một dịch vụ cung cấp một back-end dễ sử dụng và miễn phí (có giới hạn) cho ứng dụng của bạn. Nó hoạt động như một máy chủ lưu trữ cho dự án Parse Server.

Để thiết lập back4app, bạn sẽ cần đi đến back4app.com và đăng ký một tài khoản nếu bạn vẫn chưa có.

Một khi bạn đã đăng ký xong, bạn sẽ được chuyển đến một màn hình trống, nơi tất cả các ứng dụng của bạn sẽ được hiển thị. Để tạo một cái mới, bấm vào nút Build new Parse app ở góc trên bên trái. Trên màn hình tiếp theo, nhập tên cho ứng dụng của bạn và sau đó nhấp vào Next.

Một khi ứng dụng của bạn đã được tạo ra, bạn sẽ được đưa đến một màn hình với một tá các định danh và các khoá khác nhau. Những cái mà chúng ta cần phải lưu ý là App Id, Parse API AddressClient Key. Một khi bạn có một bản sao của những thứ này, bạn có thể nhấp vào nút Close ở dưới cùng của trang.

Bây giờ bạn sẽ ở trên màn hình quản lý chính cho ứng dụng của bạn. Để thiết lập thông báo đẩy, đi đến trang Push Notification Settings. Ở đây, bấm vào nút Choose File và tải lên tập tin .p12 mà bạn đã tạo trước đó. Nhấp vào Send và Bundle ID của bạn sau đó sẽ hiển thị trong danh sách như trong ảnh chụp màn hình sau đây:

Uploaded Certificate Information

4. Thiết lập Parse SDK

Là giai đoạn cuối của thiết lập, chúng ta cần tải về và thêm Parse SDK cho ứng dụng của chúng ta. Để làm điều này, bạn có thể làm theo ba bước đầu tiên trong iOS Quickstart guide của back4app.

Một khi bạn đã hoàn tất cài đặt Parse SDK và thêm vào mã cấu hình theo yêu cầu vào phương thức application(_:didFinishLaunchingWithOptions:) của bạn, thêm phương thức sau đây vào lớp AppDelegate của bạn:

Phương thức này sẽ được gọi nếu người dùng chấp nhận yêu cầu của ứng dụng cho phép hiển thị thông báo. Cụ thể, phương thức registerForRemoteNotifications mà chúng ta gọi trước đó trong app delegate của chúng ta sẽ gọi phương thức application(_:didRegisterForRemoteNotificationsWithDeviceToken:) một khi đã xử lý xong. Chúng cài đặt phương thức này, chúng ta chỉ lấy dữ liệu thiết bị và tải nó lên cho ứng dụng Parse back4app.

5. Gởi một thông báo

Bây giờ thì tất cả các thiết lập của chúng ta đã được hoàn tất, bạn có thể xây dựng và chạy ứng dụng của bạn trên thiết bị iOS. Một khi bạn mở ứng dụng, bạn sẽ thấy cảnh báo sau đây:

Notification Authorisation Alert

Bấm nút Allow và ứng dụng của bạn sẽ đăng ký chính nó cho các thông báo từ xa.

Bây giờ, bạn có thể vào trang quản lý Parse cho ứng dụng của bạn. Một khi bạn ở trong bảng điều khiển cho ứng dụng, hãy nhấp vào Core trong thanh bên trái nếu vẫn chưa được chọn. Một khi phần Core được mở rộng, bạn sẽ có thể thấy tổng số đối tượng cài đặt (Installation) cho ứng dụng của bạn. Tại thời điểm hiện tại, nó sẽ hiển thị 1 giống như trong hình minh hoạ này:

Parse Dashboard Installation Object Count

Nếu số này vẫn còn là 0, thì bạn sẽ cần phải quay trở lại và kiểm tra xem bạn đã sao chép tất cả các code vào lớp AppDelegate của bạn một cách chính xác hay chưa, bao gồm cả app identifier và client key của back4app.

Sau khi đảm bảo rằng ứng dụng của bạn đã lưu dữ liệu cài đặt trên Parse, hãy vào phần Push ở bên trái trang quản lý của Parse. Bây giờ bạn sẽ ở trên màn hình mà bạn có thể gửi thông báo tùy biến của riêng bạn. Bây giờ, bạn có thể để tất cả các thiết lập như mặc định và chỉ cần gõ vào một tin nhắn tuỳ biến ở dưới phần Write your message.

Khi bạn đã sẵn sàng, khóa màn hình thiết bị iOS của bạn và sau đó nhấn nút Send push ở góc dưới bên phải của trang quản lý Parse. Sau vài giây, bạn sẽ thấy thông báo đẩy của bạn xuất hiện trên màn hình khóa:

Successful Push Notification

Kết luận

Xin chúc mừng! Bạn vừa mới thiết lập thành công thông báo đẩy cho một ứng dụng iOS! Như bạn có thể thấy, ngoài công việc tẻ ngắt là tạo ra chứng chỉ SSL, thì bằng cách sử dụng một dịch vụ như back4app làm cho thông báo đẩy được triển khai thực hiện khá dễ dàng.

Tất nhiên, có những dịch vụ khác ngoài back4app mà bạn có thể sử dụng cho thông báo đẩy, bao gồm cả Backendless, Firebase của Google và thậm chí của CloudKit của chính Apple. Tôi chọn back4app sử dụng cho hướng dẫn này là vì hầu hết các thiết lập thông báo đẩy tuân theo một quá trình giống nhau. Nó cũng cung cấp nhiều tính năng miễn phí tuyệt vời khác mà bất kỳ ứng dụng nào cũng có thể tận dụng được.

Như mọi khi, xin vui lòng để lại ý kiến và phản hồi của bạn trong phần bình luận dưới đây. Và xem thêm một số hướng dẫn khác của chúng tôi về cách sử dụng các dịch vụ back-end dựa trên đám mây cho ứng dụng di động!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.