Подтвердить что ты не робот

WhatsApp HTML для обмена ссылками для изображения

Я знаю, что вы можете обмениваться сообщениями, и теперь это работает на Android и ios:

<a href="whatsapp://send?text=Hello world this is a message and a link http://www.example.com/image.jpg">Share with whatsapp</a>

Однако я хотел бы поделиться изображением через кнопку на моем веб-сайте, как кто-то поделился бы изображением с его телефона (галереи). Это возможно?

4b9b3361

Ответ 1

Одним из решений, которое приходит на ум, является загрузка фотографии на ваш сервер через AJAX, возврат ссылки на загруженную фотографию, а затем отправку сообщения со ссылкой на вашу фотографию с использованием метода, описанного в вашем вопросе. Это не совсем то же самое, что отправить изображение напрямую с помощью Whatsapp, поскольку получатель получит только ссылку, но я сомневаюсь, что когда-нибудь будет возможность отправить изображение в другое приложение из вашей галереи с помощью веб-страницы, поскольку это вызовет серьезные проблемы.

Грубо, процесс хотел бы этого (имейте в виду, что для этого потребуется некоторое тестирование, чтобы получить правильное решение и найти решение, которое хорошо работает на всех платформах или, по крайней мере, большинство из них):

  • Создайте загрузку изображения на свой веб-сайт. Просто имея <input type="file" accept="image/*"> на вашей странице, на большинстве платформ вы можете создать кнопку, которая откроет диалоговое окно для выбора изображения из вашей телефонной галереи при нажатии. Вы можете найти полный пример здесь или использовать библиотеку, такую ​​как Plupload, который содержит множество методов загрузки, включая HTML5, который вам нужен.

  • Создайте простую загрузку на стороне сервера. Это зависит от вашего языка и платформы, но все, что вам нужно сделать, это сохранить изображение где-то и вернуть ссылку на него в ответ. Если вы не хотите хранить эти изображения на своем сервере, вы можете переслать его на Imgur API и загрузить там.

  • Перенаправить пользователя на ссылку whatsapp://, содержащую ссылку на изображение.

    window.location = 'whatsapp://send?text='+encodeURIComponent(imageURL);
    

    Это то место, где вам нужно провести некоторое тестирование на разных платформах. Возможно, вы не сможете перенаправить ссылку whatsapp:// (так как это похоже на проблему безопасности), поэтому вам может потребоваться обмануть ее (это плохая идея, но я включаю ее ради полноты, часть data-action находится в этом ответе):

    var fakeLink = document.createElement('a');
    fakeLink.setAttribute('href', 'whatsapp://send?text='+encodeURIComponent(imageURL));
    fakeLink.setAttribute('data-action', 'share/whatsapp/share');
    fakeLink.click();
    

    В конце концов, если ни одна из этих функций не работает, лучшим вариантом будет создание ссылки после завершения загрузки для пользователя, чтобы "подтвердить" отправку, которая фактически содержит указанную выше ссылку whatsapp:// в поле href.

Есть много факторов для тестирования, а некоторые из них специфичны для реализации, поэтому я должен был держать его неопределенным без большого кода - если вы сталкиваетесь с чем-либо еще при его реализации, пожалуйста, укажите его в комментариях.