선언 웹 공유 API

I’ve written about the Web Share API before . 이것은 지원하는 경우 시스템 수준의 페이지 공유 방식을 제공하는 편리한 작은 자바스크립트입니다.we won’t be able to see full URLs in browsers anymore이 오래 걸리지 않을 수 있음을 감안하여 저희는 사이트 소유자로서 이러한 기본적인 방문을 제공하는 책임을 져야 합니다.
현재 the Web Share API은 JavaScript에 완전히 존재합니다.유사한 브라우저 API가 많은데, 나는 항상 좀 창피하다.JavaScript API와 선언 옵션이 그다지 강력하지 않더라도 이상적인 경우에는 선언 옵션이 있어야 합니다.
형식적 검증을 취하다.가장 흔히 볼 수 있는 용례를 포함하기 위해서, 예를 들어 input type="email" 또는 required 속성을 사용하십시오.하지만 용례가 더 복잡해지면 자바스크립트의 Constraint Validation API을 사용할 수 있습니다.
나는 그런 도안을 좋아한다.JavaScript만 지원하는 API 옵션이었으면 합니다.the Geolocation API을 예로 들다.이제 JavaScript를 통해서만 사용할 수 있습니다.그런데 input type="geolocation"이 있다면?그것은 모든 용례를 덮어쓰지 않지만, 반드시 덮어쓰지 않아도 된다.누군가의 위치를 얻는 간단한 상황 (예를 들어 누군가의 이메일이나 전화번호를 얻는 것) 을 보면 된다.JavaScript API는 이보다 더 복잡한 모든 작업에 유용합니다.
나는 최근에 이 점이 생각났다.

It really feels like there should be a semantic version of the share API, like a mailto: link


나는 그녀가 완전히 정확하다고 생각한다.웹 공유 API에는 사용자가 현재 페이지를 공유할 수 있도록 하는 주요 예가 있습니다.만약 성명의 방식으로 이 용례를 만족시킬 수 있다면, 그것의 진입 문턱은 더욱 낮아질 것이다.더 복잡한 일을 해야 하는 모든 사람에게 이것이 자바스크립트 API의 용도이다.
하지만

How would you feature detect for it?


잘 물었습니다.JavaScript API를 사용하면 이 API가 지원되지 않으면 기능 검사를 할 수 있고, 실행을 포기하거나 제공할 수 있습니다.
지원되지 않는 브라우저에 대한 대체 체계를 제공할 수 있도록 HTML을 확장하는 여러 가지 방법이 있습니다.
"브라우저, 만약 당신이 이 요소를 지원한다면, 시작과 끝 표시의 모든 내용을 무시합니다."라고 쓰여 있는 내용 모델로 새로운 요소를 만들 수 있습니다.이것이 바로 canvas 요소의 작업 방식이다.audiovideo도 마찬가지다. 내부에 source 원소가 아닌 모든 것을 무시했다.따라서 개발자는 시작과 끝 표시에서 반환을 제공할 수 있다.
그러나 웹 공유 API(또는 지리적 위치) 같은 것에 있어서 새로운 요소를 만드는 것은 너무 지나치다.나는 이미 몇 가지 더 미묘한 HTML을 확장하는 방법을 언급했다.
새로운 요소를 만드는 것은 어렵고도 막중한 일이다.새로운 속성을 만드는 데도 많은 작업이 필요할 수 있습니다.그러나 새 속성 값을 만들면 최상의 효과를 얻을 수 있습니다.이것이 바로 내가 input type="geolocation" 같은 것을 지리적 위치추적 API의 성명 버전에 사용하자고 건의한 이유이다.여기에 기존 기술이 있다.이것이 바로 전자 우편, url, 전화, 색깔, 날짜 등 입력 형식을 가져오는 방식입니다. 지원하지 않는 브라우저는 그들이 이해하지 못하는 모든 값을 '텍스트' 로 간주합니다.
나는 input type="share"이 있어서는 안 된다고 생각한다.공유하는 행위는 일종의 몰입이 아니다.그러나 현재 가능한 일련의 값을 수락하는 속성이 있는 기존 HTML 요소를 찾을 수 있다고 생각합니다.이 목록에서 값을 하나 더 올리는 것은 마치 값싼 행동인 것 같다.
Here’s what I suggested :


the type elementbutton 속성은 현재 '제출', '리셋', '단추' 세 가지 가능한 값을 수락합니다.다른 값을 주면 type의 '제출' 이나 '단추' (표에 있는지 여부에 따라) 를 주는 것과 같다. 마치 type 요소에서 알 수 없는 input의 값과 '텍스트' 와 유사하다.
만약 브라우저가 button type="share”을 지원한다면, 사용자가 그것을 눌렀을 때, 브라우저는 "네, 지금 운영체제로 이동하고 있습니다."라고 표시될 것입니다.
또 하나의 문제는 공유 내용상의 데이터를 어떻게 운영체제에 전달하는가이다.현재 JavaScript API에서는 URL, 텍스트 및 설명의 조합을 공유할 수 있습니다.
처음에 나는 value 속성이 특정한 키/값 배합 방식으로 이 데이터를 저장할 수 있다고 생각했지만, 내가 그것을 생각할수록 이 방면은 자바스크립트 API의 전유 분야가 되어야 한다고 생각했다.선언 버전은 현재 URL 및 페이지 title 요소의 값을 가져와 운영 체제에 전달합니다.이보다 더 복잡한 것이 필요하면 JavaScript API를 사용합니다.
그래서 제 조언은:
<button type="share">

이렇게
그러나 당신은 브라우저 지원을 어떻게 테스트합니까?현재 test for supported input types과 같습니다.속성 값이 지원되지 않으면 요소의 속성 값과 요소의 속성 값(99% 시간 동일)이 다릅니다.
var testButton = document.createElement("button");
testButton.setAttribute("type","share");
if (testButton.type != "share") {
// polyfill
}

이것이 바로 나의 겸손한 건의다.type 요소의 button 속성에 대한 가능한 값 목록을 확장하여 "공유"(또는 유사한 내용)를 포함합니다.브라우저를 지원하는 경우 운영 체제(현재 URL 및 현재 페이지 제목)의 간단한 전환을 트리거합니다.지원되지 않는 브라우저의 동작은 단추의 현재 동작과 같습니다.

좋은 웹페이지 즐겨찾기