어떻게 당신이 설정한 코코아의 응용 프로그램의 기본 웹 브라우저는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/49510

  •  09-06-2019
  •  | 
  •  

문제

어떻게 당신이 설정한 코코아의 응용 프로그램의 기본 웹 브라우저는 무엇입니까?

내가 원하는 응용 프로그램을 만들에 의해 시작할 때 기본적으로 사용자를 클릭 HTTP 또는 HTTPS 링크에서 다른 응용 프로그램(메일,iChat etc.).

도움이 되었습니까?

해결책

네 가지 단계가 있 응용 프로그램을 만드는 역할을 할 수 있는 기본적으로 웹 브라우저입니다.처음 세 가지 단계를 허용하는 프로 작동하는 역할을 처리기 위해 관련 URL(HTTP 와 HTTPS)최종 단계를 만드는 기본 역할 핸들러 사람들을 위해 계획이다.

1)URL 을 추가 제도 앱을 처리할 수 있는 애플리케이션에서 사용할 수 있는 정보입니다.plist 파일

추가에 대한 지원 http://https:// 당신이해야 할 것 다음을 추가하는 애플리케이션에서 사용할 수 있는 정보입니다.plist 파일입니다.이렇게 OS 응용 프로그램이 처리할 수 있는 HTTP,HTTP Url.

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>http URL</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>http</string>
        </array>
    </dict>
    <dict>
        <key>CFBundleURLName</key>
        <string>Secure http URL</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>https</string>
        </array>
    </dict>
</array>

2)쓴다는 URL 을 처리 방법

이 방법이 될 것이라고 OS 에 의해하고자 할 때 응용 프로그램을 사용하여 URL 을 열.그것이 문제가되지 않는 객체를 추가하려면 이 방법을 명시적으로 전달해 이벤트 관리자에서 다음 단계입니다.URL 을 처리기법을 다음과 같이 표시되어야 합니다:

- (void)getUrl:(NSAppleEventDescriptor *)event 
    withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
  // Get the URL
  NSString *urlStr = [[event paramDescriptorForKeyword:keyDirectObject] 
    stringValue];

  //TODO: Your custom URL handling code here
}

3)등록 URL 처리 방법

다음,이벤트 매니저 대상 및 방법을 호출하고자 할 때 사용하는 앱을 로드하는 URL 이 있습니다.코드에서 여기에서 내가 전달 self 이벤트 처리기는 가정하에 우리는 전화 setEventHandler 동일한 개체에서 정의하는 getUrl:withReplyEvent: 방법입니다.

추가해야 합니다 이 코드에서 어딘가에서는 응용 프로그램의 초기화 코드입니다.

NSAppleEventManager *em = [NSAppleEventManager sharedAppleEventManager];
[em 
  setEventHandler:self 
  andSelector:@selector(getUrl:withReplyEvent:) 
  forEventClass:kInternetEventClass 
  andEventID:kAEGetURL];

일부 응용 프로그램을 포함하여,초기 버전을 Adobe 에 공기,대신 사용하여 WWW!/OURL AppleEvent 을 요청하는 응용 프로그램이 열리는 Url,그래서 호환을 위한 이러한 응용 프로그램으로 당신은 또한 다음을 추가합니다:

[em
  setEventHandler:self 
  andSelector:@selector(getUrl:withReplyEvent:) 
  forEventClass:'WWW!' 
  andEventID:'OURL'];

4)응용 프로그램을 설정의 기본값으로 브라우저

모든 것이 지금까지 했던 말과 같이 OS 는 응용 프로그램 브라우저, 지금,우리는 그것을 만들기 위해 필요 기본 브라우저.

우리가 사용하여 발사 서비스 API 가이 할 것입니다.이 경우에 우리의 기본 역할을 처리기 HTTP 와 HTTPS 링크:

CFStringRef bundleID = (CFStringRef)[[NSBundle mainBundle] bundleIdentifier];
OSStatus httpResult = LSSetDefaultHandlerForURLScheme(CFSTR("http"), bundleID);
OSStatus httpsResult = LSSetDefaultHandlerForURLScheme(CFSTR("https"), bundleID);
//TODO: Check httpResult and httpsResult for errors

(아마도 최고의 요청하는 사용자의 권한을 변경하기 전에 그들의 기본 브라우저입니다.)

사용자 지정 URL 을 계획

점은 주목할 만한 가치가 있는 사용할 수도 있습니다 이 같은 단계를 처리하는 자신의 사용자 정의 URL 을 계획이다.만약 당신이 지정 URL 을 만드는 방식 그것은 좋은 아이디어를 기반으로 프로세서의 번들을 식별자와의 충돌을 방지하는니다.그래서 만약 당신의 번들 ID com.example.MyApp 를 사용하는 것을 고려해야 합니다 x-com-example-myapp:// Url.

다른 팁

하려는 경우에는 변경의 기본 도우미 응용 프로그램를 위한 http(s),당신은 그렇게 할 수 있습니다에서 사파리 preferences.거기 당신은 당신을 찾을 수 있는 드롭다운 것입니다를 선택할 모든 등록 핸들러 응용 프로그램를 위한 http.자동으로 응용 프로그램이 설정으로 자체 기본 브라우저는 방법은 이전 지침을 참조하십시오.

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