웹 공유 버튼을 만들 때 Navigator.share api를 사용하였다.
navigator.share({
title: document.title,
text: 'Hello World',
url: 'https://developer.mozilla.org',
});
아래의 필드들 중 적어도 하나는 명시되어야 한다.
사용 가능한 옵션들은
출처 : https://developer.mozilla.org/ko/docs/Web/API/Navigator/share#browser_compatibility
Navigator.share - Web API | MDN
Navigator.share() 메소드는 Web Share API 의 부분으로서 디바이스의 네이티브 공유하기 메커니즘을 작동시킨다. Web Share API 가 지원되지 않는다면, 이 메소드는 undefined 일 것이다.
developer.mozilla.org
실제로 사용해보자.
function setShare() {
$('.share-button').on('click', function(e) {
e.preventDefault();
navigator.share({
title: document.title,
url: location.href,
});
})
}
웹에서는 잘 작동되는 걸 확인할 수 있다.
하지만 웹뷰에서는 작동이 안 된다.
브라우저 호환성을 보니깐
웹뷰 안드로이드는 안되는 걸 볼 수 있다.
코드를 다시 수정해야겠다.
Navigator.share 가 안 되는 경우는 클립보드에 복사하는 기능을 넣어줬다.
function setShare() {
$('.share-button').on('click', function(e) {
e.preventDefault();
if ( typeof navigator.share !== 'undefined') {
navigator.share({
title: document.title,
url: location.href,
});
} else {
copyToClipboard(location.href);
alert('주소가 복사되었습니다');
}
})
}
function copyToClipboard(val) {
const t = document.createElement("textarea");
document.body.appendChild(t);
t.value = val;
t.select();
document.execCommand('copy');
document.body.removeChild(t);
}
웹뷰에서 주소가 복사되는 걸 확인할 수 있다.
참고 : https://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript
'소소한 개발 > javaScript' 카테고리의 다른 글
JavaScript 데이터 타입(Data Type) (0) | 2022.02.01 |
---|---|
let, const, var 차이 (0) | 2022.01.31 |
자바스크립트 Promise 이해하기 (0) | 2022.01.29 |
데이터 타입(Data Type) (0) | 2021.05.18 |
변수와 상수 (0) | 2021.05.18 |