2016-12-17 5 views
0

나는 사용자 정의 URL 체계가 잘 작동해야하지만 변경 바라고 하나 개의 작은 행동은 ... 현재 인바운드 URL을 캡처 한 다음 코드 (여기 그래서, 모든 좋은)에서 처리가 :macOS 맞춤 urlscheme, 앱을 최전방 앱으로 설정하지 않습니까?

- (void) handleURLEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent 
{ 
    NSString* url = [[event paramDescriptorForKeyword:keyDirectObject] stringValue]; 
    //I parse and deal with the url here// 
    } 

내 앱이 최전방 애플리케이션이되는 것을 피할 수 있습니까? URL을 수신 할 때마다이 앱에서 통신을 시작하고 응답을 듣기 만하면 내 앱이 이미 열려 있습니다. 그러나 때로는 NSTimer를 통해 호출되기 때문에 내 앱이 최전방 앱이 될 수도 안 될 수도 있습니다. Safari에서 내 앱이 포커스를 받도록하여 Safari에서 페이지를 탐색한다고 지금 말하면 워크 플로우를 방해하고 싶지 않습니다. 나는 이것이 의미가 있기를 바랍니다.

이것이 가능합니까?

답변

0

관심이있는 사람을 위해 대신 그룹 컨테이너를 설정하십시오. 내 페이로드를 그룹 기본값에 저장 한 다음 내 도우미 응용 프로그램에서 NSDistributedNotification을 보냅니다. 기본 앱은 알림을 받고 그룹 기본값에서 페이로드 데이터를 읽습니다.

이러한 해결 방법은 주 앱과 보조 프로그램 모두에서 필요합니다.

또한 그룹 기본값의 KVO가 샌드 박스에서 작동하지 않으며 NSDistributedNOtification에서 userDictionary를 보내지도 않음을 발견했습니다. :(

샌드 박스에서 내 앱이 멋지게 재생되도록 sooo 많은 코드를 작성해야했습니다.