我正在开发一个在手表和iOS父应用程序之间进行通信的应用程序.它通过打开它将WatchKit扩展中的数据发送到父应用程序.我知道openParentApplication:reply,在调用时,会从Apple Watch打开iPhone应用程序.之后,application:handleWatchKitExtension:reply在应用程序的委托中调用.
从那里,您可以通过以下方式向视图控制器打开通知:
NSNotificationCenter.defaultCenter().postNotificationName(aName: String, object anObject: AnyObject?)
Run Code Online (Sandbox Code Playgroud)
您可以在视图控制器中打开"aName":
NSNotificationCenter.defaultCenter().addObserver(self,
selector: Selector("handleWatchKitNotification:"),
name: "WatchKitSaysHello",
object: nil)
Run Code Online (Sandbox Code Playgroud)
这是我的WatchKit扩展中的接口控制器的代码:
//
// InterfaceController.swift
// SendColors WatchKit Extension
//
// Created by Tommy on 12/30/14.
// Copyright (c) 2014 Tommy. All rights reserved.
//
import WatchKit
import Foundation
class InterfaceController: WKInterfaceController {
var ypo = false
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
// Configure interface objects here.
}
@IBOutlet weak var redButton: WKInterfaceButton!
@IBOutlet weak var greenButton: WKInterfaceButton!
@IBOutlet weak …Run Code Online (Sandbox Code Playgroud) 假设我有以下应用程序标识符com.test.product1,它是product1,提供组ID为group.com.test.product1.
我应该将文档共享给另一个产品com.test.product2,该产品 是product2提供groupid group.com.test.product2.
如何 在所有这些应用程序之间共享一个像group.com.test.product这样的公共组?
我有一个可以成功将文件移动到共享应用程序组中的功能,但删除该文件的功能似乎不起作用。如果我打印出 fullpath2 变量,它似乎是正确的位置,但文件不会被删除,也不会返回错误。
这是我的功能:
func getSharedFilePath(appGroup:String,sharedFilename:String)->URL? {
if let directoryPath = FileManager().containerURL(forSecurityApplicationGroupIdentifier: appGroup) {
return directoryPath.appendingPathComponent(sharedFilename)
} else {
return nil
}
}
public func deleteFromSharedFile(sharedFilename: String, fileExtension: String)->String {
let sharedFilename = "\(sharedFilename).\(fileExtension)"
guard let url = getSharedFilePath(appGroup:applicationGroup,sharedFilename:sharedFilename) else {
return("Error getting shared file path")
}
// read file from file system to data variable
let fileManager = FileManager.default
do {
try fileManager.removeItem(atPath: (url.path))
return("File Removed")
}
catch let error as NSError {
return("File Remove Failed - \(error)")
} …Run Code Online (Sandbox Code Playgroud) 我需要检查自定义键盘扩展的完全访问权限。我找到了此链接。
它说我们可以检查App组。我有一个名为“ group.TTT.TGroup”的应用程序组。它在主应用程序和自定义键盘之间共享访问权限。
然后,我这样检查。问题是我总是可以访问它(总是有array或error = null)。是因为我共享相同的数据吗?但是,如果我的应用程序使用另一个应用程序组,而扩展程序使用另一个应用程序组,则我绝对不能访问它。我可以知道怎么做吗?
NSFileManager* fileManager = [NSFileManager defaultManager];
NSString *path = [fileManager containerURLForSecurityApplicationGroupIdentifier:@"group.TTT.TGroup"].path;
NSError *error;
NSArray *arr = [fileManager contentsOfDirectoryAtPath:path error:&error];
NSLog(@" arr is %@",arr);
if (arr == nil || !arr) //can check error also
accessOn = NO;
else accessOn = YES;
Run Code Online (Sandbox Code Playgroud) objective-c ios8 ios-app-extension ios-app-group custom-keyboard
我试图将我的应用程序提交到Mac App Store,并且收到此消息。我不确定我要去哪里错。我应该给应用程序组命名吗?
谢谢

我目前正在为watchOS 2更新我的应用程序,并且在设备之间的通信方面遇到了一些麻烦:之前我一直在使用共享的NSUserDefaults来启用Watch和iOS设备,以便独立地从一个App Group读取和写入多个值.
现在watchOS 2应用程序在Watch上本地运行,Watch Connectivity Framework取代了之前的通信选项,这似乎不再适用.但是,从我在参考文献中看到的内容来看,实现与WatchOS 1中使用Watch Connectivity相同的功能相当麻烦......
有没有其他选择让我创建某种容器/文件/数据库/我可以从我的Watch应用程序和相关的iOS应用程序访问和更新?
背景:
在我的iPhone应用程序中,我检索图像并将其保存到文档目录,以便更快地加载.我知道要在Apple Watch上使用这些图像,我必须与App Group分享.
所以,我创建了一个应用程序组,更新了我的配置文件,所有这些都是爵士乐.现在我的问题是我不知道如何将图像保存到App Group并在WatchKit文件中读取该图像.
以下是我尝试将图像保存到App Group的内容:
NSString *container = @"group.com.appName.watchdatasharing";
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:container];
[defaults setValue:UIImagePNGRepresentation([FileManager readImageFromFileWithName:@"icon1_imgUrl"]) forKey:@"icon1_imgUrl"];
Run Code Online (Sandbox Code Playgroud)
要在我的WatchKit应用程序中检索图像,我使用以下代码:
NSString *container = @"group.com.fantrac.watchdatasharing";
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:container];
NSData* imageData = [defaults valueForKey:@"icon1_imgUrl"];
UIImage* image = [UIImage imageWithData:imageData];
[tableRow.iconImage setImage:image];
Run Code Online (Sandbox Code Playgroud)
题:
我在Apple Watch上测试时没有显示图像.在申请和Apple Watch之间保存/检索图像时,我需要做些什么?