웹 공유 기능 JS로 구현하기

웹 공유 기능 JS로 구현하기
Cozy CodingPosted On Jun 19, 20243 min read

고급 JavaScript 기능으로의 심층 탐구

이미지

자바스크립트는 많이 발전해 왔으며 세계에서 널리 사용되는 언어 중 하나입니다. 이 기사에서는 고급 자바스크립트를 사용하여 웹에서 공유 기능에 대해 논의합니다. 이 기능을 사용하면 핸드폰의 앱 목록을 열고 사용자가 어떤 앱에서든 공유할 수 있습니다. 코드와 함께 놀아봅시다.

여러 브라우저에서 실패할 수 있기 때문에 Web API의 지원을 확인하고 있습니다.

// window 대신 globalThis를 사용할 수 있어요
const isBrowserSupport = () => globalThis.navigator?.share;

웹 공유 API는 web-share 권한 정책에 의해 제한됩니다. 권한은 지원되지만 부여되지 않았을 경우 canShare() 메서드는 false를 반환할 것입니다.

const isShareAPIDataValid = (sharingData) => {
  if (navigator.canShare) {
    return navigator.canShare(sharingData);
  }
  
  return true;
};

그 다음 단계에서는 navigator.share를 사용하여 휴대폰 앱 목록을 열어서 사용자가 어떤 앱에서든 공유할 수 있도록 합시다.

const sharingData = { 
  title: '제목', 
  text: '설명', 
  url: 'https://medium.com/@opensrc0/5-scanner-qr-bar-code-upi-in-the-web-using-js-advanced-feature-uribaba-8407f08ddefd' 
};

navigator.share(sharingData)
  .then(() => console.log(sharingData))
  .catch((error) => console.log(error));

여기까지입니다. 정말 멋지죠. JavaScript의 고급 기능인 navigator.share를 사용하여 웹에서 공유 기능이 가능합니다. 아래는 결합된 코드입니다.

const isBrowserSupport = () => globalThis.navigator?.share;

const isShareAPIDataValid = (sharingData) => {
  if (navigator.canShare) {
    return navigator.canShare(sharingData);
  }
  
  return true;
};

if (isBrowserSupport()) {
  if (isShareAPIDataValid(sharingData)) {
    navigator.share(sharingData)
      .then(() => console.log('성공'))
      .catch((e) => console.log('오류'));
  } else {
    console.log('허가 거부');
  }
} else {
  console.log('지원하지 않는 기능');
}

이미지

웹 개발을 fe-pilot npm 패키지로 업그레이드하세요! https://github.com/opensrc0/fe-pilot

React로 개발된 이 혁신적인 JavaScript 라이브러리는 웹 애플리케이션을 한 단계 높여주는 최신 기능을 제공합니다. fe-pilot은 일반적으로 많은 코딩 노력이 필요한 고급 기능을 쉽게 통합하는 프로세스를 간소화합니다.

유용한 링크:

  1. 이미지 처리 및 QR 코드/바코드/UPI 세부 정보 가져오기: https://medium.com/@opensrc0/7-scanning-an-image-qr-bar-code-upi-in-the-web-using-js-advanced-feature-uribaba-d491139f5c02
  1. 지금은 Share Features를 읽고 계십니다.

  2. Whatsapp Share: https://medium.com/@opensrc0/9-whatsapp-share-in-the-web-using-js-advanced-feature-uribaba-919fe89c1840