2016-07-17 5 views
0

Sirikit을 사용하여 앱과 상호 작용해야하는 내 지불 도메인 앱과 통합하고 있습니다. Apple 설명서를 읽은 후 공용 프레임 워크를 사용하도록 요청했습니다. 핸드 오프를 사용할 수 있습니까? 그렇다면 어떻게? sirikit에서 상위 응용 프로그램에있는 다른 viewController를 어떻게 호출 할 수 있습니까?Sirikit 및 ios 10의 부모 앱 통신 : 핸드 오프

정말 도움이됩니다. 감사합니다

답변

0

확인 SiriKit Programming Guide,

가 핸드 오프를 사용하려면, 당신은 NSUserActivity 개체와 의도 응답 개체를 만들 수 있습니다. NSUserActivity 객체가

let userActivity = NSUserActivity() 
userActivity.userInfo = ["myKey": myAnyObject] 

, 당신이 원하는 적절한 객체에 사용자 정보 속성을 지정할 만드는 동안 당신은

여기
optional public func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Swift.Void) -> Bool 

당신은 당신이로 비교할 수 있습니다 userInfo 개체를 얻을 수 있습니다, 부모 애플리케이션 AppDelegate에이 NSUserActivity 개체를 얻을 것이다 요구 사항에 따라 적절한 viewController를 호출하십시오.

+0

감사 Dhawal을 다음과 같이

let userActivity = NSUserActivity(activityType: "uaType") userActivity.title = "uaTitle" userActivity.userInfo = ["uaKey": "uaValue"] 

이제 AppDelegate이 활동 개체에 액세스 할 수 있습니다. 나는 또한 같은 것을 시도했다. 그러나 핸드 오프가 끊김없이 일어나지는 않습니다. 그것은 "오픈 애플 리케이션"버튼을 제공하고 있습니다. 버튼을 클릭하면 앱이 열립니다. –

+0

@Dhawal .. SiriKit 샘플 코드에 "페이지를 찾을 수 없음"이 표시됩니다. 내비게이션을 사용하지 않고 IntentUI Extension에서 상위 응용 프로그램의 데이터를 가져 오는 방법은 무엇입니까? – Bharath

1

은 모든 사용자 활동 객체 유형을 필요로하고 우리는 응용 프로그램 예를 들어

의 Info.plist에서 그 유형을 정의 할 필요가있다. 당신의 설명을

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool { 

     switch userActivity.activityType { 
     case "uaType": 
     //Write your logic to access uaKey & uaValue here 
     return true 
     default: return false 
     } 
}