标签: nsuseractivity

使用Handkit和Watchkit将iPhone应用程序带到前台

我有一个简单的项目,用户点击Apple Watch上的按钮和iPhone上的一些音频播放,这很容易使用openParentApplication方法并在AppDelegate中使用handleWatchKitExtensionRequest代码.但是,虽然这在模拟器中有效,但如果iPhone应用程序尚未打开,它将无法在实际设备上运行.我试图找到是否可以使用其他方法,即使iPhone应用程序尚未打开也能正常工作.

我在这里读了一个stackoverflow的答案,可以使用Hand和(部分)将手机应用程序带到前台,使用WKInterfaceController updateUserActivity:userInfo:webpageURL:UIApplicationDelegate application:continueUserActivity:restorationHandler.但是,作为一名新开发人员,我正在努力研究如何在没有任何示例的情况下正确地做到这一点.任何人都可以提供一些示例代码,说明这将如何工作,哪些都一起用于在iPhone应用程序上运行一些代码?

iphone ios swift handoff nsuseractivity

14
推荐指数
1
解决办法
3452
查看次数

使用NSUserActivity使应用程序活动和状态可搜索

以下是我试图实现的代码,以使应用程序活动和状态可搜索但无法在iOS搜索上显示

NSUserActivity *userActivity = [[NSUserActivity alloc]initWithActivityType:@"com.mycompany.activity-type"];

userActivity.title = @"Hello world from in app search";
userActivity.keywords = [NSSet setWithArray:@[@"Hello",@"Welcome", @"search"]];
userActivity.userInfo = @{@"id":@"com.example.state"};

userActivity.eligibleForSearch = YES;    
[userActivity becomeCurrent];
Run Code Online (Sandbox Code Playgroud)

链接让我的问题更清楚.

objective-c ios ios9 nsuseractivity

11
推荐指数
2
解决办法
4577
查看次数

NSUserActivity没有在osx上编入索引

我正在尝试将自己的活动添加到osx 10.11上的Spotlight搜索结果中.但经过多次尝试后,我无法通过关键字搜索而不是通过标题搜索进入Spotlight搜索结果.

{
    self.userActivity = [[NSUserActivity alloc] initWithActivityType:@"Reverse DNS keyword"];

    self.userActivity.title = @"Some title";
    self.userActivity.keywords = [NSSet setWithArray: @[@"Some keywords"]];
    self.userActivity.eligibleForSearch = YES;
    self.userActivity.eligibleForHandoff = YES;
    self.userActivity.eligibleForPublicIndexing = YES;
    self.userActivity.userInfo = @{@"name" : @"Some name"};
    self.userActivity.delegate = self;
    self.userActivity.requiredUserInfoKeys =[NSSet setWithArray: @[@"name"]];
    self.userActivity.needsSave = YES;

    [self.userActivity becomeCurrent];

    NSApp.userActivity = self.userActivity;
}

- (void)userActivityWillSave:(NSUserActivity *)userActivity
{
     userActivity.userInfo = @{@"name" : @"Some name"};
}
Run Code Online (Sandbox Code Playgroud)

我还使用来自initWithActivityType:参数的NSUserActivityTypes数组和项更新了Info.plist

另外我注意到在Console中有时出现消息:

16/09/2016 13:14:49.731 Caching encoded userInfo to use until we are marked dirty again (UAUserActivity.m #1567)
16/09/2016 …
Run Code Online (Sandbox Code Playgroud)

macos cocoa cocoa-touch ios nsuseractivity

11
推荐指数
1
解决办法
186
查看次数

NSUserActivity切换不适用于自定义数据

我正试图在iPhone和iPad之间测试iOS 8.1切换功能和NSUserActivity.为此,我尝试了实现自己的解决方案,并使用Apple的PhotoHandoff项目.但是,它不起作用.

如果我提供了一个webpageURL,切换工作正常,但是当我尝试使用userData或者addUserInfoEntriesFromDictionary实在不行,我不能为我的生活出美中不足的是什么使数据的工作.

示例代码:

NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"com.company.MyTestApp.activity"];
activity.title = @"My Activity";
activity.userInfo = @ {};
//    activity.webpageURL = [NSURL URLWithString:@"http://google.com"];

self.userActivity = activity;

[self.userActivity becomeCurrent];
[self.userActivity addUserInfoEntriesFromDictionary:@ { @"nanananan": @[ @"totoro", @"monsters" ] }];
Run Code Online (Sandbox Code Playgroud)

(我也无法使用具有相应活动类型的Mac应用程序)

objective-c ios handoff ios8.1 nsuseractivity

10
推荐指数
1
解决办法
4190
查看次数

如何创建一个接受用户传递的输入的Siri Intent

我用如下参数创建了一个自定义Intent:

在此输入图像描述

我捐了它:

let intent = PlayIntent()
intent.color = color
let interaction = INInteraction(intent: intent, response: nil)
interaction.donate()
Run Code Online (Sandbox Code Playgroud)

它显示正确:

在此输入图像描述

但是,我想要一个接受用户输入的Intent.示例,Messages.app:

在此输入图像描述

如何配置我的自定义Intent来处理输入?

ios nsuseractivity sirikit ios12 sirishortcuts

9
推荐指数
1
解决办法
1775
查看次数

NSUserActivity缺少contentAttributeSet属性

我正在使用NSUserActivities实现iOS9搜索索引.根据文档NSUserActivity,应该有一个名为的属性contentAttributeSet,用于向搜索项添加更多内容.但是,查看Xcode 7中的NSUserActivity类不会显示具有此名称的属性.我正在使用Xcode 7 beta 6.

xcode ios ios9 nsuseractivity

7
推荐指数
1
解决办法
661
查看次数

在NSUserActivity上CSSearchableIttributeSet应该使用哪些属性?

我在网站上添加了Web Markup,因此当用户在iOS 9中搜索时,项目将显示在Spotlight搜索结果中.用户可以浏览应用程序中的相同项目,因此我想创建NSUserActivity在用户浏览项目时链接到Web内容的对象.

现在,NSUserActivity有一个contentAttributeSet属性我将用于将缩略图照片附加到活动.CSSearchableItemAttributeSet有一些属性NSUserActivity也有,所以我不确定我应该实现哪一个,或者我应该为两者指定相同的数据.难道我设置titleNSUserActivity,以及在titleCSSearchableItemAttributeSet,或只有一个或其他?同样keywords是两者的财产.

NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@“com.domain.appname-something"];
activity.title = @“My Title";
activity.keywords = [NSSet setWithArray:@[@“one", @“two", @“three"]];
activity.userInfo = @{@“id": @“12345"};
activity.requiredUserInfoKeys = [NSSet setWithArray:@[@“id"]];
activity.eligibleForSearch = YES;
activity.eligibleForPublicIndexing = YES;
activity.webpageURL = [NSURL URLWithString:@"https://someurl.com"];

//QUESTION: Do I need to duplicate title and keywords here:
CSSearchableItemAttributeSet *contentAttributeSet = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(NSString *)kUTTypeImage];
contentAttributeSet.title = activity.title;
contentAttributeSet.displayName = …
Run Code Online (Sandbox Code Playgroud)

ios corespotlight ios-searchapi nsuseractivity

7
推荐指数
1
解决办法
933
查看次数

如何在当前应用程序中触发NSUserActivity continuation(Universal Links opening)?

iOS9中的Universal Links使用Handoff机制查看应用程序中的链接而不是浏览器:每当点击Universal Link时,iOS会激活相应的应用程序,并-application:continueUserActivity:restorationHandler使用包含Universal Link URL的用户活动进行调用(请参阅Apple环球指南)链接).

我想手动触发这个机制,即创建一个NSUserActivity具有webpageURL属性的实例并将其分派给当前应用程序处理-application:continueUserActivity:restorationHandler.有没有办法实现这个目标?

目前我只是-application:continueUserActivity:restorationHandler直接打电话,但这感觉不对,我想以更恰当的方式实施它.

ios handoff ios-universal-links nsuseractivity

7
推荐指数
0
解决办法
523
查看次数

检测应用程序是从Handoffs还是Universal Links启动的

是否有一种可靠/正确的方法来确定application:continueUserActivity:restorationHandler:方法中是否在我的应用程序中打开了应用程序,但我需要能够区分来源而无需向URL添加任何内容.

我查看了属性,NSUserActivity但似乎没有任何帮助,因为Handoffs和Universal Links的activityType回报NSUserActivityTypeBrowsingWeb.

那么,有没有正确的方法来做到这一点,或者我应该在不知道来源的情况下以相同的方式处理两者?

编辑:这基本上是我希望有可能实现的......

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
    if handoff {
        ...
        return true
    } else if universalLink {
        ...
        return true
    }
    return false
}
Run Code Online (Sandbox Code Playgroud)

ios handoff ios-universal-links nsuseractivity

6
推荐指数
0
解决办法
328
查看次数

watchOS 6 和 iOS 13 NSUserActivity Handoff 不工作

自从更新到 iOS 13 和 watchOS 6 后,我无法让我构建的任何应用程序的 Handoff 功能从 Apple Watch 运行到 iPhone。该功能以前适用于我现有的自定义构建的应用程序,但自操作系统更新后不再起作用。我可以确认在 Apple Watch 和 iPhone 上支持 Handoff 的 Apple 本地应用程序工作正常,因此我排除了任何 iCloud 登录/帐户问题。为了帮助解决和隔离问题,我最终构建了一个演示 iOS 和 watchOS 应用程序来测试 Handoff 功能。我确保在 NSUserActivityTypes 下的 iOS 应用程序的 info.plist 中包含用户活动,并且我使用相同的开发人员团队 ID。我也在使用最新的 Xcode 版本 11.2.1。当下面的 WKInterfaceController 可见时,Handoff 图标应该出现在我 iPhone 上的 App Switcher 中,但它没有出现。更新后我错过了什么吗?谢谢。

这是我的 WatchKit 代码。

import WatchKit
import Foundation

class InterfaceController: WKInterfaceController {

    var userActivity: NSUserActivity?
    
    override func awake(withContext context: Any?) {
        super.awake(withContext: context)
        
        // Configure interface objects here.
        userActivity = NSUserActivity(activityType: "HandoffDemo.Handoff")
        userActivity?.title …
Run Code Online (Sandbox Code Playgroud)

ios handoff nsuseractivity watchos-6 xcode11.2

6
推荐指数
0
解决办法
389
查看次数