我计划创建一个Apple Watch应用程序.有没有办法通过WatchKit访问触觉反馈?
有逻辑的主要应用程序,我们将应用程序扩展到Apple Watch.
添加目标xCode后,再创建2个应用程序:扩展代码和监视工具包应用程序.
问题:扩展程序中的代码如何重用已准备好的主要iOS应用程序的逻辑?扩展程序应用程序如何与主App通信并发送命令.
如何计算Watch Kit扩展中的当前用户位置,因为我们无法CoreLocation在手表套件中使用.
提前致谢
使用我的Watchkit应用程序时,我遇到了错误.当我启动它时,我要求包含iOS应用程序从网络获取一些数据.问题是我得到一个错误,说包含应用程序从不调用'reply()':o但是看看我的代码,它应该调用它.
我试图调试从openParentApplication到'reply()'调用的每一步,它似乎运行良好= X.
这是我在Watchkit扩展中的代码
- (void)initDiaporamasWithSuccess:(void (^)())success andFailure:(void (^)(NSError*))failure {
NSLog(@"Ask to load diapos");
__weak typeof(self) weakSelf = self;
[WKInterfaceController openParentApplication:@{@"watchKit": @"watchKit.initDiapos"} reply:^(NSDictionary *replyInfo, NSError *error) {
if (error) {
NSLog(@"%@", error);
if (failure) {
failure(error);
}
return;
}
NSLog(@"got items : %@", replyInfo[@"diapos"]);
weakSelf.diaporamas = replyInfo[@"diapos"];
[weakSelf setDiaporama:replyInfo[@"firstDiapo"] AtIndex:0];
if (success) {
success();
}
}];
Run Code Online (Sandbox Code Playgroud)
}
结果应该是一个NSDictionary包含一个带有一些diaporamas基本信息的NSArray,一个包含第一个diaporama完整信息的对象(Diapo)(例如self.diaporamas [0])
以下是包含应用程序的AppDelegate中的代码:
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply {
// Maybe we could handle multiple watchKit extension calls that way …Run Code Online (Sandbox Code Playgroud) 我正在使用xcode 6.3
xcode自动创建了配置文件"xxx.xxx.xxx.watchkitextension",在watchkit扩展目标的代码签名中,我尝试选择此配置文件或将其保留为自动,它们都给我这个错误"无法定位或生成匹配签名资产"当我将其提交到App Store时.

有任何想法吗?谢谢.
我目前正在研究有很多(10+)目标的项目.这是一个白色品牌的应用程序,每个目标专用于客户,所有目标共享完全相同的代码,但编译不同的资源(特别是.xcsassets).
我想将Apple Watch集成到我的项目中,只是为了在手表上启用通知.它需要添加2个目标,Watchkit Extension和App.(注意:WatchKit App目标将链接到相同的.xcassets,而不是相关的iPhone App来继承AppIcon).
虽然只有少数目标的项目是可以的,但在我的情况下这实际上并不实用.在我的subversion文件夹中创建了很多新文件,.plist,并使目标列表非常庞大.
是否可以向所有客户分享这2个额外目标?也许通过使用脚本使WatchKit应用程序/扩展目标自动匹配(更新目标名称,包ID等)可能会构建方案/ iOs目标?
任何想法都会受到欢迎.
我正在尝试让WCSession(Xcode 7.0 beta 5)在手机上工作 - >在真实设备上观看方向(在模拟器中它完美运行)但每次都会出错:
错误:"Domain = WCErrorDomain Code = 7006 Watch app未安装".
我的意思是一切都在Watch - > Phone方向(sendMessage:,updateApplicationContext:,CoreLocation等).为了排除与代码相关的问题,我正在使用Apple的Potloc应用程序进行测试.
看来我已经尝试了一切,这里有一个完整的列表:
iPhone能够与Watch通信的唯一方法是使用WCSession方法中的回调来回答.
我还可以做些什么?
如何为我的EXISTING Xcode 7项目添加复杂功能?
看WWDC视频2015会议209,显示增加复杂性的方式是创建一个新的项目,并在复杂性.这适用于该情况,但我如何在现有项目中添加它们?
我在XCode对象选择器中找不到复杂控制器(见下文):
为什么会这样?
从watchOS 2开始,我们有一个ExtensionDelegate对象,类似于UIApplicationDelegate(对应用程序生命周期事件做出反应).
我想获得对第一个Interface Controller对象的引用,该对象将在启动时显示,以在其上设置属性(例如,传入数据存储对象).
根据文档,手上的rootInterfaceController财产WKExtension支持初始控制器:
根接口控制器位于应用程序的主故事板中,并具有与之关联的主入口点对象.WatchKit在启动时显示根接口控制器,尽管应用程序可以在启动序列完成之前呈现不同的接口控制器.
所以我尝试以下内容ExtensionDelegate:
func applicationDidFinishLaunching() {
guard let initialController = WKExtension.sharedExtension().rootInterfaceController else {
return
}
initialController.dataStore = DataStore()
}
Run Code Online (Sandbox Code Playgroud)
即使显示正确的接口控制器,此时rootInterfaceController也是零.有趣的是,如果我在willActivate()我的Interface Controller中查询相同的属性,则属性设置正确.
在iOS应用程序中,您已经可以获得根视图控制器了applicationDidFinishLaunching(),我认为它应该对watchOS起作用.
有没有办法在界面控制器显示之前(从外部)设置属性?这是一个错误吗?
非常感谢你的回答!
如何从我的应用程序上的Apple Watch状态栏屏幕隐藏或删除小时钟?
我在网上搜索了这个,但一无所获!
我刚刚发现,如果你删除那个时钟,Apple会拒绝你的应用程序,但我的应用程序本身就是一个表盘而且不需要显示那个时间.
watchkit ×10
ios ×9
apple-watch ×4
ios9 ×1
networking ×1
objective-c ×1
restkit ×1
swift ×1
target ×1
watchos ×1
watchos-2 ×1
xcode ×1
xcode-6.2 ×1
xcode7-beta5 ×1