Из официального FAQ по WhatsApp вы можете увидеть, что использование «Универсальных ссылок - это предпочтительный способ привязки к учетной записи WhatsApp».
Так что в вашем коде строка URL должна быть:
const url = "https://wa.me/?text=YourTextHere";
Если у пользователя установлен Whatsapp в его телефоне, эта ссылка откроет его напрямую. Это должно решить проблему открытия веб-страницы в первую очередь.
Из-за проблемы невозможности отправки многословных сообщений это связано с тем, что вам необходимо закодировать ваше сообщение как URL. Это также указано в документации:
URL-кодированный текст - это предварительно заполненное URL-кодированное сообщение.
Итак, для URL-кодирования вашего сообщения в Dart Вы можете сделать это следующим образом:
const url = "https://wa.me/?text=Your Message here";
var encoded = Uri.encodeFull(url);
Как видно из экскурсии по языку Dart .
Обратите внимание, что в вашем примере кода вы добавили дополнительный набор одинарных кавычек вокруг текстового сообщения, чего не следует делать.
Редактировать:
Другой вариант, также представленный в FAQ WhatsApp, - это непосредственное использование схемы WhatsApp. Если вы хотите попробовать это, вы можете использовать следующий URL:
const url = "whatsapp://send?text=Hello World!"
Обратите внимание, что если вы тестируете на iOS9 или выше, Документация Apple заявляет:
Важно
Если ваше приложение связано с или после iOS 9.0, вы должны объявить схемы URL, которые вы передаете этому методу, добавив ключ LSApplicationQueriesSchemes в файл Info.plist вашего приложения. Этот метод всегда возвращает false для необъявленных схем, независимо от того, установлено ли соответствующее приложение. Чтобы узнать больше о ключе, см. LSApplicationQueriesSchemes.
Поэтому вам нужно добавить следующие ключи в ваш info.plist, если вы используете пользовательскую схему WhatsApp:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>whatsapp</string>
</array>