24/01/2019, 15:21

Một số kỹ thuật về Event Kit trong lập trình iOS

Request Permission EvenKit là 1 framework giúp chúng ta truy cập và sử dụng Calendar và Reminder của người dùng. Kỹ thuật đầu tiên là cách xin quyền user truy cập vào Calendar và Reminder (Request Permission) cũng như là cách kiểm tra người dùng có cho phép chúng ta truy cập vào ...

Request Permission

EvenKit là 1 framework giúp chúng ta truy cập và sử dụng Calendar và Reminder của người dùng. Kỹ thuật đầu tiên là cách xin quyền user truy cập vào Calendar và Reminder (Request Permission) cũng như là cách kiểm tra người dùng có cho phép chúng ta truy cập vào chúng hay không.

Đầu tiên, chúng ta sẽ khởi tạo biến eventStore có kiểu EKEventStore. EKEventStore là trung tâm trong EventKit, cho phép chúng ta đọc hoặc ghi vào Calendar và Reminder của người dùng.

Tiếp theo, chúng ta sẽ kiểm tra quyền hạn App có được phép truy cập vào Calendar hay không. Điều này cực kỳ quan trọng, ảnh hưởng trực tiếp đến sự “sống còn” của App, cần thực hiện mỗi khi màn hình hiện lên (viewDidAppear/ viewWillAppear).

Công việc tiếp theo là tạo ra 1 func requestAccessToCalendar và sau đó đưa vào case .notDetermined

Ở bước tiếp theo, chúng ta cần 1 mảng chứa tất các các event của User

Và sau đó, tạo func để load tất cả dữ liệu của User vào mảng

Tiếp theo, chúng ta sẽ bỏ func trên vào case authorized. Sau khi thiếp lập tất cả các dòng lệnh trên, chúng ta sẽ run App và chờ xem điều gì sẽ xảy ra.

crash app

Chúng ta sẽ quay lại file info.plist và xét quyền vào cho app của chúng ta là xong.

Privacy Calendars

- - - - - - - - - - - - - - - - - - - - Được tài trợ - - - - - - - - - - - - - - - - - - - -

Successfully Authorized Calendars

Lấy danh sách các Event

Chúng ta sẽ tiếp tục lấy các event từ các danh muc lấy được và đổ chúng vào UITableView.

Đầu tiên, chúng ta tạo UITableView và đổ các danh mục vào trước.

List Event

Chúng ta cần tạo thêm 1 ViewController nữa, và đặt Storyboard ID cho nó là EventVC.

Event View Controller

Bước tiếp theo, chúng ta sẽ bắt sự kiện User chọn vào 1 cell nào đó, và chuyển màn hình và hiển thị các event thuộc calendar đó (Calendar, US Holidays, Birthdays).

Để có thể gọi được vc.calendar, cần khởi tạo nó ở EventViewController

Tới bước này, chúng ta đã lấy được tất cả sự kiện từ đầu năm 2016 đến cuối năm 2016. Và công việc còn lại của các bạn chỉ là từ dữ liệu nhận được mà đổ chúng vào tableview là xong.

Done

Chúc các bạn thành công!!!

Tạo Calendar

Đầu tiên, chúng ta cần tạo thêm 1 màn hình và 1 file ViewController nữa, để đơn giản chúng ta chỉ cần 1 textfield và 1 button là xong. Và công việc lại lẩn quẩn là ánh xạ, đặt tên. Để quy chuẩn lại cách đặt tên của các bạn trong bài viết này, mình sẽ đặt tên như sau:

  1. NewCalendarViewController
  2. calendarTitleTextField
  3. addNewCalendarActionButton

like a boss

Ở addNewCalendarActionButton, chúng ta sẽ:

  1. Khởi tạo biến eventStore có kiểu dữ liệu là EKEventStore
  2. Khởi tạo biến newCalendar có kiểu dữ liệu là EKCalendar
  3. Xét title cho biến newCalendar bằng với nội dung của user nhập vào
  4. Xét source cho newCalendar
  5. Save Calendar
  6. Xử lý nếu có lỗi