2015-09-01 38 views
0

我试图实施一种解决方法,以从Apple Watch应用程序对应物中打开我的iPhone应用程序。从配对的苹果手表启动iPhone应用程序

这里是我的使用情况进行通知这样做:当用户拿起手表上的按钮

Watch displays an available deal with a CTA button to see details on Phone 

-------------------------- 
New rates options published! 

check details on phone 

<Button> 
--------------------------- 

,用户获得本地通知 配对手机上的“Checkout的新汇率选项“

在选择本地通知时,将启动显示详细信息的应用程序。

我的做法是:

**On watch:** 

call *openParentApplication:reply:* ...this will open the iOS app in the background 

**On app:** 

In *application:handleWatchKitExtensionRequest:reply:* 
...which is called on the iOS app when opened in background, trigger a local notification 


**User:** 

User picks the local notification to bring app to the foreground 

将这项工作?如果是这样,我如何从后台运行的应用程序触发即时本地通知?

最后一个问题:有没有一种(合法)的方式来做到这一点,而不需要本地通知(一个不会被应用商店拒绝)?

回答

3

批准的方法是使用Handoff而不是本地通知。通过Handoff,您可以使用WKInterfaceControllerupdateUserActivity:userInfo:webpageURL:方法指定手表上发生的当前活动。然后,当用户查看iPhone的锁定屏幕时,他们会在左下角看到应用程序的图标。从那里向上滑动将启动该应用程序,并且该切换活动将在启动时传递到应用程序中,以便您可以根据需要进行深度链接。

为此目的使用本地通知可能有效,但它会有一些缺点。首先,它很霸道;切换在其方法中更加被动。其次,为了安排本地通知,用户必须同意接收它们;从用户的角度来看,这是意想不到的行为。

另外,请记住,在watchOS 2中,openParentApplication:reply:方法不可用...真正的通信API取代了它的位置。查看WatchOS 2 Transition Guide了解更多信息,并查看WatchConnectivity框架。

+0

当然 - 应该考虑切换!感谢指针!会试试这个。 – CoolDocMan

相关问题