我正在开发一个客户端应用程序,该应用程序具有地理围栏,可以在用户访问其中一个应用程序供应商时通知用户。
当位置管理器触发时,它会调用当前日期为fireDate的本地通知。
如果用户的iPhone已锁定并且他们配有Apple配对手表,则会在手表上显示自定义通知。用户可以关闭通知,也可以点击自定义操作按钮。
我希望自定义操作按钮唤醒手机并在应用中显示供应商的页面。一种自动切换。用户通过单击手表上的“查看供应商”页面表达了他们访问供应商页面的愿望。
有可能吗?我目前正在使用+[WKInterfaceController openParentApplication:reply:]
方法尝试调用父iOS应用程序。但是,如果手机被锁定,则没有任何反应。 iPhone屏幕保持黑暗,没有声音,没有任何声音。
如果在点击手表上的操作按钮之前解锁手机,它会调用该应用并向其发送显示供应商页面的消息。
作为第二个问题,是否可以设置我的观看应用,以便当用户点击通知按钮时,观看应用会将消息传递给iPhone应用,然后关闭观看应用?现在,我的客户端在手表上没有运行任何东西,而不是将用户带到供应商页面的自定义通知。手表应用程序的主屏幕此时只是一个占位符,当您单击自定义操作按钮并获得该空白屏幕时,它看起来很愚蠢。
(另外,我知道在手表套件1.0中,手表应用程序的代码实际上是在iPhone上运行,但它是作为一个单独的过程运行的,所以谈论手表向iPhone发送消息是有用的,即使这不是正在发生的事情。)
答案 0 :(得分:0)
这个问题的答案显然是否定的,没有。
Apple视图将手机视为用户必须直接通过手机进行的操作。
我所做的是让手表中的openParentApplication:reply:error:
消息从手机中查找包含键/值对的inInBackground的回复词典,其中包含一个bool YES或NO。
如果wasInBackground == YES,它会显示一条模态消息,告诉用户他们需要在手机上打开应用才能看到内容。
如果wasInBackground == NO,则手机处于唤醒状态,应用程序位于最前端,因此应用程序可以显示用户的内容。
然后,在电话方面,如果来自手表的信息在后台进入,我会检查手表正在请求的操作类型。如果它是显示行车路线的请求,我创建一个具有显示行车路线的代码的街区,并将其设置为" blockToRunOnReturnToForeground" app委托的属性。然后,当app委托获取applicationWillEnterForeground消息时,它会检查一个非零" blockToRunOnReturnToForeground"并且它有一个,调用它并将其删除。
结果是,当用户最终将应用程序返回到前台时,它会发出行车路线请求。
用户体验并不像我想的那样完美无缝,但至少用户并没有完全混淆为什么当他们点击手表上的某个操作按钮时没有任何反应。< / p>