Ответ 1
Насколько я знаю, такой реализации в существующих браузерах на мобильных ОС нет. Поскольку интересующий меня вопрос - поиск Google показал, что в этом направлении выполняется работа:
Извините - я не знаю обходного пути.
Существует ли возможность запуска функции общего доступа в локальных браузерах на смартфонах через HTML или JavaScript?
Конечно, есть много сервисов, которые предоставляют кнопку совместного доступа. Но когда я, например, хотите поделиться сайтом на facebook, мне нужно войти в facebook в браузере, который я сейчас использую.
Почти во всех браузерах есть встроенная функция совместного использования, которая запускает системное меню для выбора того, какое приложение вы хотите использовать для совместного использования:
Этот вопрос касается: Как вызвать это меню?
Я знаю, что можно вызвать телефонный звонок с указанным префиксом в атрибуте href ссылок, например tel:
или callto:
. Может быть, такой ярлык для этого общего меню также существует? Или какой-нибудь код javascript? Или совершенно иначе, как это сделать?
Спасибо заранее.
Насколько я знаю, такой реализации в существующих браузерах на мобильных ОС нет. Поскольку интересующий меня вопрос - поиск Google показал, что в этом направлении выполняется работа:
Извините - я не знаю обходного пути.
Это возможно с большой выгодой. В настоящее время доступно только в Chrome для Android и Safari (для ПК и мобильных устройств). http://caniuse.com/#feat=web-share
if (navigator.share) {
navigator.share({
title: document.title,
text: "Hello World",
url: window.location.href
}).then(() => console.log('Successful share'))
.catch(error => console.log('Error sharing:', error));
}
https://developers.google.com/web/updates/2016/10/navigator-share
Я добавил это, поскольку все ответы кажутся устаревшими к 2018-07-16.
Это возможно, но только в нескольких браузерах (MDN Reference), реализованных с помощью API метода в navigator
:
navigator
.share({
title: document.title,
text: 'Hello World',
url: window.location.href
})
.then(() => console.log('Successful share! 🎉'))
.catch(err => console.error(err));
Справка Google: https://developers.google.com/web/updates/2016/10/navigator-share
Кроме того, была вещь, называемая Web Intends, которая является мертвым проектом, вы должны вместо этого использовать navigator.share
.
Теперь это возможно с API Web Share !
Тем не менее, он пока не получил широкой поддержки. В настоящее время он доступен только в Safari (для мобильных и настольных ПК) и Chrome для Android. См. Могу ли я использовать для деталей.
В соответствии с введением API веб-обмена для разработчиков Google, необходимо помнить о нескольких вещах:
navigator.share(…)
в ответ на действие пользователя, такое как щелчок (т.е. вы не можете вызвать его при загрузке страницы)navigator.share !== undefined
)В статье Google Developers также отмечается, что URL-адреса, используемые совместно с Share API, не обязательно должны находиться в вашем собственном домене - вы можете поделиться любым URL-адресом.
Собрав все это вместе, вы можете использовать что-то вроде этого, которое использует API-интерфейс Share, если он доступен, и отступает к отправке электронного письма, если это не *:
function createShareButton() {
const btn = document.createElement("button");
const title = document.title;
const text = "Check this out!";
const url = window.location.href;
btn.innerText = "share" in navigator ? "Share" : "Share via e-mail";
btn.onclick = () => {
if (navigator.share !== undefined) {
navigator
.share({
title,
text,
url
})
.then(() => console.log("Shared!"))
.catch(err => console.error(err));
} else {
window.location = 'mailto:?subject=${title}&body=${text}%0A${url}';
}
};
return btn;
}
document.title = "Demo";
document.body.appendChild(createShareButton());
Вы можете использовать метод WebView.addJavascriptInterface() для Android.
Сначала вам нужно будет написать класс, который запускает намерение открыть меню совместного доступа (посмотреть здесь), а затем реализовать этот класс используя вызов addJavascriptInterface(). После этого все, что вам нужно сделать, это вызвать метод из вашего Javascript.