2010-08-24 3 views
4

내 목표는 한 osx 컴퓨터에서 클릭 한 링크가 사과 이벤트가 활성화 된 원격 컴퓨터의 사파리로로드되도록 만드는 것입니다. 이렇게하려면, 나는 시스템에 기본 브라우저를 만든다. 경우는 argv에서os x에서 Applescript 앱 번들을 기본 브라우저로 사용하는 방법은 무엇입니까?

on run argv 
    set theurl to item 1 of argv 
    set dest to "eppc://user:[email protected]" 
    tell application "Safari" of machine dest 
     activate 
     open location theurl 
    end tell 
end run 

이 URL을 캡처하는 데 사용할 수있는 적절한 방법이 아니다, 내가 바로 아래에 스크립트를 단순화했습니다 :

내 AppleScript로는 다음과 같습니다

tell application "Safari" 
    activate 
    open location "http://www.google.com" 
end tell 

I 이것을 응용 프로그램으로 저장하고 Safari에이 응용 프로그램이 기본 브라우저 여야한다고 말하면서 응용 프로그램의 링크를 클릭하면 내 응용 프로그램을 완전히 무시하고 Safari의 URL을로드합니다. 내가 클릭 한 URL).

왜 이런가요? AppleScript가 브라우저로 작동하도록 특별한 조치를 취해야합니까? 두 번 클릭하여 내 애플 스크립트 응용 프로그램을 실행하면 정확히 무엇을해야하는지 알 수 있습니다. 그러나 "기본 브라우저"기능을 통해 실행하면 전혀 실행되지 않고 대신 Safari가 작동합니다.

내가 잘못하고 있거나하지 않는 무언가가 있거나 내가 완전히 잘못된 길로 가고있는 경우 나에게 알려주십시오.

답변

5

AppleScript 응용 프로그램의 Info.plist 파일을 수정하여 URL을 처리 할 수있는 응용 프로그램으로 등록해야합니다. CFBundleURLTypes 키와 CFBundleURLSchemeshttp 키를 추가해야합니다.

그런 다음 당신은 당신의 애플 스크립트에 open location 처리기를 추가해야합니다 :

on open location theURL 
... 
end open location 

맥 OS X가 자동으로 응용 프로그램의이의 Info.plist가 변경된 것을 감지하지 않습니다. 따라서 당신은 lsregister 명령을 사용하여 터미널에서 LaunchService 데이터베이스를 업데이트 강제해야

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /path/to/AppleScript.app 

은 또한 자세한 내용은 following page를 참조하십시오.

관련 문제