After a bunch of research I believe there is still no way to bypass this. The only possible solutions would be to use cloaking, ie to send one canonical tag to Google/bots, and another to user or Safari users. Which is not ideal for SEO purposes.
I looked into the Web Share API, but AFAIK this can only work with share buttons on the page, not browser native share buttons.