iOS12.2에서 Web Share API가 왔기 때문에 확인해 보았습니다.
뭐야!
진짜!
라는 느낌으로 iOS12.2부터 WebShareAPI에 대응한 것 같습니다. (Qiita의 대응 너무 빨라?)
그래서 Vue + TypeScript + bulma + parcel에서 사쿠와 데모 페이지를 만들어 검증해 보았습니다.
검증
iOS12.2에서는 text와 url만 반응하고, title은 반응하지 않는 것 같습니다.
또한 https가 아니면
navigator.share
가 undefined가되는 것 같습니다.Android Chrome도 WebShareAPI를 지원하지만 검증되지 않았습니다.
사용 가정
텍스트와 URL만 공유할 수 있기 때문에 할 수 있는 일은 한정됩니다만, 공유용 URL이나 복수의 URL을 공유하고 싶을 때에 사용할 수 있다고 생각합니다.
또, 친구 코드를 버튼을 탭해 곧바로 공유는 사용법도 할 수 있다고 생각합니다.
TypeScript에서 형식 정의
interface Navigator {
share?(option: { url: string } | { text: string } | { title: string }): Promise<void>
}
// コンパイルエラー
navigator.share({text: "fogefoge"})
if (navigator.share) {
navigator.share!({text: "fogefoge"})
}
지원되지 않는 브라우저도 많기 때문에
share?
로 정의하고 있습니다.strict 모드에서 보통 사용하려고 하면 컴파일 에러가 됩니다.
또한 param은 url, title, text 중 하나 이상이므로 union 유형으로 정의했습니다.
마지막으로
안드로이드는 지원이 끝난 것으로, iOS는 최신 OS의 점유율이 높은 것도 있고, 앞으로는 일반적인 SNS 공유 링크로 바뀌어 웹 콘텐츠에 공유 버튼이 놓여질지도 모릅니다.
아직 개발 도상 느낌입니다만, 이미지 등을 공유할 수 있게 되면, TwitterAPI를 개입하지 않고 화상 트윗등을 할 수 있을 것 같네요!
참고
Reference
이 문제에 관하여(iOS12.2에서 Web Share API가 왔기 때문에 확인해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/katsuya_U/items/bbcdc132cdbe28a9d764텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)