문제

Safari 확장 프로그램을 작성하는 가장 좋은 방법은 무엇입니까?저는 Firefox용으로 몇 가지 XUL 확장 기능을 작성했고, 이제는 Safari용으로 그 버전을 작성하고 싶습니다.입력 관리자나 서비스 메뉴에서는 이것이 불가능하기 때문에 브라우저 UI에 버튼이나 양식을 추가할 수 있는 방법이 있습니까?

도움이 되었습니까?

해결책

Safari 5.0 출시와 함께 Apple은 개발자가 사용할 수 있는 새로운 확장 프레임워크를 출시했습니다.기능적으로는 버튼, 도구 모음, 상황에 맞는 메뉴, 자바스크립트 및 HTML 5를 사용한 삽입을 사용자 정의할 수 있는 Firefox 확장 프레임워크와 유사해 보입니다.

이 링크에서 더 많은 정보를 얻으세요

https://developer.apple.com/documentation/safariextensions

다른 팁

Safari 플러그인 개발은 쉽지 않습니다.인터페이스는 Objective-C로 작성되었으며 대부분은 WebKit의 일부가 아니지만(따라서 소스를 볼 수 없음) 실행 중인 애플리케이션의 개체 계층 구조를 검사하고 패치하는 메커니즘이 있습니다.Cocoa와 Objective-C에 대한 이해가 필요하지만 그 이하도 아닙니다.

다음은 프로세스 북마크에 있는 높은 수준의 개요입니다. http://livingcode.org/2006/tab-dumping-in-safari.작동하는(아마도 오래된) 코드로 Python을 사용하여 Safari 플러그인을 만드는 방법을 설명합니다.Python 대신 Objective-C 바인딩이 있는 모든 것을 사용할 수 있습니다.

여기에는 두 가지 주요 부분이 있습니다.

위의 링크를 읽으면 프로젝트의 범위를 알 수 있습니다.

최근에는 상황이 바뀌었습니다.Apple은 이제 Safari 5의 일부로 확장 API를 사용할 수 있습니다.자세한 내용은 다음에서 확인할 수 있습니다. 애플의 사이트 그리고 Safari 개발자 프로그램에 참여하기.

Safari 확장 프로그램은 디지털 서명이 필요하지만 Apple에서 서명 인증서를 무료로 얻을 수 있습니다.이는 Apple이 Safari를 업데이트할 때마다 문제가 발생할 수 있는 해킹에 의존하지 않고 Safari에 확장 프로그램을 적용할 수 있는 합법적인 방법입니다.

Safari가 실제로 진정한 플러그인을 지원한다는 사실을 아무도 언급하지 않은 것 같습니다. 입력 관리자 해킹은 확실히 그렇지 않습니다.

"WebKit 플러그인 프로그래밍 주제" http://developer.apple.com/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/

이것이 PDF 및 Flash 콘텐츠에 대한 지원과 같은 기능이 구현되는 방식입니다.당신의 내면을 들여다보세요. /Library/Internet Plug-ins/ 예제를 볼 수 있는 디렉토리입니다.

물론, 태생적인 한계가 있고, UI 수정까지 원하는 바를 이루지 못할 수도 있습니다.Safari 플러그인은 입력 관리자 해킹이 할 수 있는 모든 작업을 수행할 수는 없지만 WebKit에서는 어디에서나 향후 버전의 OS에서 작동합니다. 메모: Safari는 Snow Leopard에서 기본적으로 64비트이므로 입력 관리자가 작동하지 않습니다.나는 그리워 해 사파리 애드블록 이미...:-( 나는 그것이 진짜 플러그인으로 다시 작성되는 것을 보고 싶습니다.

입력 관리자나 서비스 메뉴에서는 이것이 불가능하기 때문에 브라우저 UI에 버튼이나 양식을 추가할 수 있는 방법이 있습니까?

실제로, InputManager를 사용하면 ~일 것이다 가능하다.Safari 확장의 일반적인 기술인 SIMBL은 단순히 InputManager를 둘러싼 래퍼입니다. 에스입력 분노 언저리 오더.Safari의 기존 클래스를 확장하면 메뉴 막대, 도구 모음, 대화 상자 등 어디에나 항목을 추가할 수 있습니다.

즉, Safari용 확장 프로그램을 작성하는 것은 æon이 말했듯이 사소하지 않을 뿐만 아니라 완전히 지원되지 않습니다.Inquisitor(최근 Yahoo!에 인수됨) 및 Google Gears와 같이 상대적으로 인기 있는 것들이 있지만 대부분 공식적으로 지원되고 널리 사용되는 기술인 Firefox의 확장 기능과는 매우 다릅니다.

당신은 또한 특별한 점을 고려하고 싶습니다. Leopard의 InputManager 제한 사항.

또한 참고할 점 - Apple은 Leopard부터 InputManager가 심각하게 제한되고 있으며 Apple별로 64비트 응용 프로그램에서 실행되지 않을 것이라고 밝혔습니다. 레오파드 수정 정보 기록.대부분의 애플리케이션이 Snow Leopard(Safari 포함)에서 64비트라는 점을 고려하면 이는 특히 흥미롭습니다.Apple은 확실히 기능을 재정의하고 확장하기 위한 벡터로서 InputManager를 없애려고 노력하고 있습니다.Safari에는 확장 메커니즘이 절실히 필요합니다.

Safari 확장 프로그램은 Apple의 승인을 받을 필요가 없습니다.개발자 인증서(무료)만 있으면 이를 만들 수 있지만 이를 전달할 수 있으며 Apple이 확장 갤러리를 만들고 있지만 거기를 통해 배포할 필요는 없습니다.보시다시피 현재 시도해 볼 수 있는 확장 기능이 이미 꽤 많이 있습니다.인증서는 변조되지 않았음을 확인합니다.

http://safariextensions.tumblr.com/

기존 확장 프로그램이 어떻게 완료되었는지 확인하려면 다운로드하거나 Safari 확장 프로그램 폴더에서 가져온 다음 .safariextz를 .xar로 변경한 다음 Pacifist로 열고/추출하여 코드를 보고 추가하려는 경우 Extension Builder 앱.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top