feedback-assistant / reports

Open collection of Apple Feedback Assistant reports

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FB13497472: EKCalendarItem#url returns invalid URLs in some cases

sindresorhus opened this issue · comments

  • Date: 2023-12-28
  • Resolution: Open
  • Area: EventKit
  • OS: macOS 14.2
  • Type: Incorrect/Unexpected Behavior

Description

The Calendar app allows the user to type in “x.com” (without the scheme) in the URL field of an event. However, “EKCalendarItem#url “ then returns an invalid URL instance, since it’s missing the scheme. I suggest adding a “http://“ scheme if it’s missing. Or at minimum document the fact that “EKCalendarItem#url” can be an invalid URL and that consumers must handle that case.

Apple reply:


If NSURL can represent it, then it’s a valid URL. It's up to the UI client what to do with the URL. Using http:// is not always correct since some calendar clients put a raw telephone number in that field, in which case you would need to use tel: instead.

The calendar app uses Data Detectors to try to guess the right scheme to use when the event doesn’t include one.

My reply:


It’s an invalid URL because it’s parsed into something the user did not intend. When you construct a URL/NSURL instance from ““x.com”, the “x.com” becomes the “path” of the URL, not the “host”. While it’s a valid URL/NSURL instance, it’s not what the user intended and it’s also not a usable URL instance.

To solve your concern with phone numbers, you could have a heuristic that you would only prepend a “http” scheme if the string had a dot “.”, since phone numbers don’t have that.

Behavior like this should be clearly documented, as it’s not obvious.

Apply reply:


Thanks for your input.