大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Widget作成メモ(6)ーカレンダーイベント 表示の編集

著者:川上洋
公開日:2020/11/19
最終更新日:2020/11/19
カテゴリー:技術情報 雑記

こんにちは。川上です。

Widget面に、Myカレンダーイベントの2、3日の項目が表示できたら良いよねっと、ネット巷に探ってみました。

お〜。ググ先輩方々から、結構教えてくれます。有難いことです。サンクスサンクスです。
で、取り敢えず、カレンダーイベントの取得処理のアレコレを参照してお勉強しました。

先ずは、Widgetの表示メンバの設定から。。。。

struct SimpleEntry: TimelineEntry {
    let date: Date
    let configuration: ConfigurationIntent
    let myDayString : String  // "○○/○○(○○)"
    let myCalenderString : String   // ← イベント項目の表示
    
}

日付け表示メンバ(myDayString)の編集箇所に、myCalenderStringの編集処理を同様に追加して、動かしてみました。

import EventKit
// MARK: - +++ UIKit U/I +++ CFLib_Mgr()
class CFLib_Mgr {
    // MARK: - カレンダーイベント用 メンバー
    static let myEventStore = EKEventStore()
    var myTargetCalendar: EKCalendar!
    
    
// MARK: - ⭐️ +++ カレンダーイベント
 static func getCalenderEventStr() -> String {
     var dstr = "今日明日の予定は\nありません。"
     let weekstr :[String] = [ "日", "月", "火", "水", "木", "金", "土"]
     
     // ユーザーにカレンダーの使用の許可を求める.
     let bret = allowAuthorization()
     if bret == false {
         return "err-無し"
     }

  ・・・・・
  ・・・・・
	return dstr
}	

で、端から、エラー表示しよりました。

Widgetは、困ったことに、print logの表示が無さそうーで、debug Breakは、稀に?止まる時がある模様みたい。ホンマかいな?

時計アナログPrj側に、カレンダーイベントの取得の同処理を動かすと、しっかり、落ちてくれて、
”The app’s Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.”
が吐き出していました。

info.plistに、
 Privacy – Calendars Usage Description 
の設定が必要みたいでした。

時計アナログPrj側にも、info.plistにPrivacyを入れて、時計アナログPrjを起動して、例のアラートメッセージをOKすると

ので、Widgetが、ちゃんとEvent表示処理ができそうです。

で、追々でカレンダーイベントの表示をwね。
ではでは。

    上に戻る