StackOverflow's idea was not bad. I wrote a special subroutine InstallByBundleId.
Some comments.
1) When to use
Imagine that your program tries to call messenger, for example, App.OpenUrl ("whatsapp://send? ...")
If WhatsApp is installed, OpenUrl will open a chat. But if Whatsapp is not installed, you will get an error.
In this case there is a reason to initiate a installation.
2) How to find bundleId
For example, for WhatsApp.
Search by
Whatsapp IOS in Google Chrome.
The first link will be
https://apps.apple.com/app/whatsapp-messenger/id310633997
So, we know id - 310633997. This id is valid today, new release will have another id (like I understand).
Type
https://itunes.apple.com/lookup?id=310633997
A browser will download a file with name 1.txt. Open it and search by
bundleId. You will find a key
"bundleId":"net.whatsapp.WhatsApp"