I am using MFMessageComposeViewController
with pre-filled recipients and message. This message ends with a unique URL, e.g.:
I made a card for you!
https://my.domain.com/unique-card-url
The user can edit this message, of course, but if the message is not modified then the link preview is not generated.
(Subsequent messages with the same link are generated.)
When sending same message (each time with a new unique url) in iMessage the link previews are generated properly.
This appears to be an edge case when pre-populating the message body. Because the body is never edited in the MFMessageComposeViewController itself, it never generates the link preview before sending.