2014-12-01 7 views
0

저는이 작은 글꼴 (아래)을 사용하여 기본값 인 Fluid App에서 링크를 열 수 있습니다. 여기 file:///어떻게 파일 : // URL을 AppleScript를 통해 특정 브라우저로 리디렉션합니까?

on open location this_URL 

    if this_URL contains "drive.google.com" then 
     tell application "/Applications/Fluids/Google Drive.app" 
      activate 
      open location this_URL 
     end tell 
    else if this_URL contains "mail.google.com" then 
     tell application "/Applications/Fluids/Gmail.app" 
      activate 
      open location this_URL 
     end tell 
    else 
     -- default browser here 
     tell application "/Applications/Google Chrome.app" 
      activate 
      open location this_URL 
     end tell 

    end if 

end open location 

큰 단점은 보관의 상황에 맞는 메뉴를 공유 링크가이 로컬 파일에 의존한다는 것입니다, 그래서 기능이 고장 : 그러나, 지역의 URL에 대한 고장.

로컬 URL도 리디렉션하도록 어떻게 업데이트 할 수 있습니까? 나는 인터넷을 샅샅이 뒤졌고 그것을 이해하는 것처럼 보일 수 없다.

편집 : 추가 정보를

문제는 ": /// 파일"어떤 URL을 제공합니다. "this_URL"에는 스크립트의 마지막 "else"문에 따라 로컬 URL이 포함되어 있지 않으므로 Chrome에서 열어야합니다. default_browser 스크립트가 열리고 종료 된 다음 반복됩니다. 다시 열리거나 닫힙니다. 다른 일은 일어나지 않습니다. Dropbox 및 기타 응용 프로그램은 file : /// URL을 사용하여 컨텍스트 메뉴 기능을 트리거합니다. 나는 이것들과 함께 특별한 일을 할 필요가 없다 - 단지 다른 URL처럼 구글 크롬으로 열길 바란다.

참고 : 아래 코드를 시도했지만 작동하지 않습니다.

if this_URL contains "file:///" then ... 
+0

나는 구글 드라이브를 사용하지 않기 때문에 완전히 당신이 구문 분석하려고하는지 이해하지 않지만, 당신은 "파일을 포함하는 유체 응용 프로그램 것들로 전송하고자하는 URL 중 하나를 수행합니다/// "? 그렇다면 Fluid 앱의 한계점이며, 포럼에서 질문하는 것이 가장 좋습니다. 그렇지 않다면 "file : ///"에 대한 함정을 잡을 수 있습니다. 그러면 Chrome에서 쉽게로드 할 수 있어야합니다. – jweaks

+0

보관 용 계정 문제에 대한 자세한 내용을 제공 할 수 있습니까? 예제 URL과 dropbox와 유체간에 달성하고자하는 것. – adamh

+0

@adamh는 위의 질문을 문제 해결에 도움이되는 정보로 업데이트했습니다. – timshutes

답변

0

기본 브라우저 섹션 만 file : /// URI로 실패한다고 생각하는 것으로 알고 있습니다. 그렇다면 올바른 형식으로 브라우저에 전송되고 있는지 확인하기 만하면됩니다. this_URL을 확인하고 파일 구조가 올바른 형식으로되어 있는지 확인하려면 대화 상자의 표시를 넣어

file:///Users/MyHome/Desktop/My%20File.txt 

: 파일 구조 형식은 같은 것을 보일 것입니다. 필요한 엔티티를 인코딩하는 것을 포함하여 필요한 경우 서식을 지정하기 위해 기본 브라우저 섹션 안에 file : /// URI를 함정에 빠뜨립니다. 나는 당신이 오류가 아니라 빈 페이지를 얻고 있기 때문에 엔티티가 당신을 트립하고 있다고 생각합니다. 공백과 같은 것을 제거해야합니다.

else 
    -- default browser here 
    if this_URL contains "file:///" then set this_URL to formatURL(this_URL) 
    tell application "/Applications/Google Chrome.app" 
     activate 
     open location this_URL 
    end tell 
end if 

-- at end of script add this routine: 
on formatURL(s) 
    return (do shell script "/usr/bin/python -c 'import sys, urllib; print urllib.quote(sys.argv[1])' " & quoted form of s) 
end