There are a few questions (1) (2), blog posts, and apple forum threads, with some solutions for this question with older versions of iOS, but I can't find anything about iOS 12 onwards (or even anything in the last ~5 years).
The below HTML produces a link which, on Android, opens the SMS with a pre-populated recipient and message body:
<a href="sms:+61411111111;?&body=Hello">Press me to sms</a>
On iOS 12 and 14 (default Safari / Messages apps) the body
populates, but the recipient does not.
I've tried every variation I can find. They pretty much all work on Android.
None work on iOS 12 or 14. I haven't yet tested other versions, but based on the older threads, at least some of these used to work on iOS 8 and earlier.
<a href="sms:+61411111111?&body=Hello">Press me to sms</a> // Populates body, no recipient
<a href="sms://+61411111111?&body=Hello">Press me to sms</a> // Attempts safari web navigation
<a href="sms:/+61411111111?&body=Hello">Press me to sms</a> // Attempts safari web navigation
<a href="sms:+61411111111;?&body=Hello">Press me to sms</a> // Populates body, no recipient
<a href="sms:+61411111111;?body=Hello">Press me to sms</a> // No body, no recipient
<a href="sms:+61411111111;&body=Hello">Press me to sms</a> // Populates body, no recipient
<a href="sms:+61411111111;?&body=Hello">click me to sms</a> // Populates body, no recipient
<a href="sms:61411111111;?&body=Hello">click me to sms</a> // Populates body, no recipient
<a href="sms:0411111111;?&body=Hello">click me to sms</a> // Populates body, no recipient
<a href="sms:0411111111">click me to sms</a> // Populates nothing