선언 웹 공유 API
4668 단어 htmlmarkupdeclarativewebshare
현재 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
요소의 작업 방식이다.audio
과 video
도 마찬가지다. 내부에 source
원소가 아닌 모든 것을 무시했다.따라서 개발자는 시작과 끝 표시에서 반환을 제공할 수 있다.그러나 웹 공유 API(또는 지리적 위치) 같은 것에 있어서 새로운 요소를 만드는 것은 너무 지나치다.나는 이미 몇 가지 더 미묘한 HTML을 확장하는 방법을 언급했다.
새로운 요소를 만드는 것은 어렵고도 막중한 일이다.새로운 속성을 만드는 데도 많은 작업이 필요할 수 있습니다.그러나 새 속성 값을 만들면 최상의 효과를 얻을 수 있습니다.이것이 바로 내가
input type="geolocation"
같은 것을 지리적 위치추적 API의 성명 버전에 사용하자고 건의한 이유이다.여기에 기존 기술이 있다.이것이 바로 전자 우편, url, 전화, 색깔, 날짜 등 입력 형식을 가져오는 방식입니다. 지원하지 않는 브라우저는 그들이 이해하지 못하는 모든 값을 '텍스트' 로 간주합니다.나는
input type="share"
이 있어서는 안 된다고 생각한다.공유하는 행위는 일종의 몰입이 아니다.그러나 현재 가능한 일련의 값을 수락하는 속성이 있는 기존 HTML 요소를 찾을 수 있다고 생각합니다.이 목록에서 값을 하나 더 올리는 것은 마치 값싼 행동인 것 같다.Here’s what I suggested :
the
type
element의 button
속성은 현재 '제출', '리셋', '단추' 세 가지 가능한 값을 수락합니다.다른 값을 주면 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 및 현재 페이지 제목)의 간단한 전환을 트리거합니다.지원되지 않는 브라우저의 동작은 단추의 현재 동작과 같습니다.
Reference
이 문제에 관하여(선언 웹 공유 API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/adactio/a-declarative-web-share-api-2o29텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)