2012-10-31 3 views
2

ScriptingBridge를 사용하여 Safari에서 URL을 열게하는 Objective-C 코드를 사용하고 있습니다. 다음과 같이 입력하십시오 :Objective-C에서 ScriptingBridge를 사용하여 Chrome에서 URL을 여는 방법은 무엇입니까?

Safari 대신 Chrome에서 똑같은 코드를 작성하고 싶습니다. 분명히 "Safari.h"를 "GoogleChrome.h"로, "com.apple.Safari"를 "com.google.Chrome"으로 변경해야합니다. 마지막 세 줄을 바꾸는 방법을 모르겠습니다. GoogleChrome.h에 "GoogleDocument"의 정의가 없습니다.

+0

ScriptingBridge 프레임 워크를 프로젝트에 추가하는 것을 잊지 마십시오. 그렇게하지 않으면, 암시적인 컴파일러 오류가 발생합니다. –

답변

2
GoogleChromeApplication *application = [SBApplication applicationWithBundleIdentifier:@"com.google.Chrome"]; 
GoogleChromeWindow *window = [[[application classForScriptingClass:@"window"] alloc] initWithProperties:nil]; 
[application.windows addObject:window]; 
window.activeTab.URL = @"http://www.example.com"; 
[window release]; 
[application activate]; 
+0

고마워, 션! 그게 정상적으로 작동하므로 느린 AppleScript 기반 해결 방법을 추출했습니다. –

1

필요한 것을 얻는 유일한 방법은 AppleScript입니다.

NSString *script = @"tell application \"Google Chrome\" to \ 
        open location \"http://www.ford.com\""; 
NSAppleScript* appleScript = [[NSAppleScript alloc] initWithSource: script]; 
[appleScript executeAndReturnError:nil]; 

사파리파이어 폭스와 함께 작동뿐만 아니라 (물론 당신은 \"Safari\" 또는 \"Firefox\"\"Google Chrome\"을 변경해야합니다).

+0

감사합니다! AppleScript 솔루션이 작동합니다. 프로덕션 코드에서 사용할 수 있습니다. 물론 누군가가 적절한 주문을 알고 있다면 ScriptingBridge 솔루션을 원합니다. 사실, 내 프로그램은 Safari, Chrome 또는 Firefox를 제어 할 수 있어야합니다. Safari 용 ScriptingBridge 솔루션과 Chrome 용 AppleScript 솔루션이 작동합니다. Firefox 용으로 작동하는 솔루션이 없습니다. 필자가 제공 한 AppleScript 솔루션에서 "Chrome"을 "Firefox"로 변경할 수 있다고 가정했지만 작동하지 않습니다. 응! –

+0

Firefox 및 Safari에서 작동하는 버전으로 코드를 업데이트했습니다. –

+0

다시 한번 감사드립니다. Firefox와 Safari에서 작동합니다. –