问题标签 [nsuseractivity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 继续 userActivity: NSUserActivity - 识别它来自 callkit 或联系人
我已经在我的项目中实现了 callkit。
因此,当我报告来电时,会有视频按钮。所以根据这个答案user102008's Answer When user tap on video button
使用意图类型调用的委托方法INStartVideoCallIntent
但是在其他情况下,INStartVideoCallIntent
当用户从联系人应用程序中点击视频按钮时,会调用相同的委托方法
现在的问题是我无法确定如何区分动作 Callkit 视频按钮和联系人视频按钮。
任何帮助或建议都会有所帮助。提前致谢
ios - UserActivity ReferrerURL 为零
- (BOOL)application:(UIApplication *)application continueUserActivity:userActivity...
处理深度链接委托的方法有 userActivity,它的属性之一是 referrerURL,它总是 nil 我的猜测是它应该包含启动深度链接的引用应用程序或网站数据。
NSUserActivity 文档:nsuseractivity
referrerURL 文档:referrerurl
我的问题是我如何才能收到正确的referrerURL 而不是 nil
ios - 设置 userActivity 时,我们是否必须覆盖 updateUserActivityState
文档对updateUserActivityState
我来说有点模糊。
https://developer.apple.com/documentation/uikit/uiresponder/1621095-updateuseractivitystate
子类覆盖此方法以更新给定用户活动的状态。您应该使用其 addUserInfoEntries(from:) 方法将表示用户活动的状态添加到 NSUserActivity 对象中。
当状态为脏时,应将 NSUserActivity 的 needsSave 属性设置为 true,该方法会在适当的时候被调用。
所以当我们这样做的时候会调用这个方法:
然后我们可以相应地更新活动:
但是当我们只设置一次活动并且从不更新它时,我们是否也总是必须实现updateUserActivityState
?
例如,在设置活动一次时viewDidLoad
:
swift - application:continueUserActivity:restorationHandler: 使用切换时未调用
我在我的测试设备(不使用模拟器)和 SwiftUI 上使用最新版本的 Xcode、macOS、iOS
我的 SwiftUI 用户界面和我的 UserActivity DelegateHandler:
在我的里面appdelegate
:
当我在一台设备上启动应用程序并使用我的另一台设备进入该菜单(双击主页按钮时)并单击屏幕底部我的测试应用程序的切换符号时,应用程序启动但该功能application:continueUserActivity:restorationHandler:
永远不会被调用,所以我无法继续,而是通过单击它来启动应用程序时显示标准行为。任何想法为什么会这样?
ios - NSUserActivity:当用户从我的应用程序的最近日志中点击(或拨打电话)时,将调用哪个方法?
我正在快速实现 CallKit,并且在直接从最近的日志中拨打电话时遇到了 NSUserActivity 的问题。
在最近的日志中点击我的应用程序条目时,我的应用程序正在启动,但 AppDelegate 的任何方法都没有调用。
我已经从应用程序功能中打开了 Siri,并在 info.plist 中添加了 NSUserActivityType。我在 NSUserActivityType 中添加了 INStartAudioCallIntent 和 INStartVideoCallIntent。我在 AppDelegate 类中实现的方法如下:
从最近的日志中点击我的应用程序的任何条目时,调试器控制台中会打印以下行。
AppDelegate-BAA416CD-ED84-4161-A054-B2192AFAD47A application:continueUserActivity:restorationHandler:] 已附加交互但未处理
corespotlight - 在 Spotlight 中重复显示 NSUserActivity
我知道有几篇关于这个主题的帖子,但它们与我的问题有很大不同。
我正在尝试NSUserActivity
在 Spotlight 搜索中显示我的。对于我来说NSUserActivity
,我使用了三个 API .isEligibleForHandoff
:.isEligibleForSearch
和.isEligibleForPrediction
.
我的问题是我的活动在 Spotlight 搜索中显示了两次,其中一个结果提供了一个空的 userInfo,而另一个没有。但是Apple Programming Guide建议:
使用以下策略来避免创建单个项目的重复表示:
如果您同时使用 NSUserActivity 和 Core Spotlight API 来索引项目,请为相关唯一标识符和唯一标识符使用相同的值来链接项目的表示。
但我认为这甚至不是我的问题,因为我没有使用任何 Core Spotlight API。
那是我在UIResponder
课堂上的代码:
注意:该updateUserActivityState(activity:)
方法被连续调用两次。
那么如何避免在 Spotlight 搜索中获得多个搜索结果,并确保userInfo
保留具有属性集的搜索结果。
ios - 尝试状态恢复时在基于文档的应用程序中获取“错误域 = NSCocoaErrorDomain 代码 = 257”
完整的错误信息是:
[main] *** 来自 FPBookmarkableStringFromDocumentURL 的错误,file:///private/var/mobile/Library/Mobile%20Documents/com~apple~CloudDocs/MY_APP/hello.txt -> Error Domain=NSCocoaErrorDomain Code=257“文件无法打开,因为您无权查看。”
当我重新启动我的应用程序并尝试重新打开以前打开的文件时(例如,当应用程序“后台”和释放内存时,从 SceneDelegate(在 iOS 13 中引入)引发此错误,因此我想重新加载场景的状态)。我按照这个 WWDC 会话https://developer.apple.com/videos/play/wwdc2019/212的步骤和从https://developer.apple.com/documentation/uikit/app_and_environment/scenes/下载的示例源代码支持_multiple_windows_on_ipad
我基本上复制了他们的 configure(window: UIWindow?, with activity: NSUserActivity) -> Bool 函数并将其转换为适合我的需要。它似乎完美无缺,但我得到了错误。
我正在使用https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/Handoff/AdoptingHandoff/AdoptingHandoff.html#/的“在基于文档的应用程序中采用切换”部分中描述的默认 NSUserActivity 技术/apple_ref/doc/uid/TP40014338-CH2-SW17
这是配置函数的主体:
如果有人知道解决方法,谢谢。
ios - watchOS 6 和 iOS 13 NSUserActivity 切换不起作用
自从更新到 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 代码。
ios - 是否可以从另一个应用程序更改 NSUserActivity 的 userInfo?
我正在尝试使用以下通用链接从应用 A 打开应用 B:
在 App B 的 AppDelegate -> application continueUserActivity restoreHandler 方法中,它调用了另一个处理 userActivity 的函数。这里有一个 NSUserActivity 的 userInfo 的检查。它正在检查 NSUserActivity 的 userInfo 属性中的键 PageName,并根据该值为活动分配一个类型并相应地路由应用程序。
我想知道是否可以在 App A 中更改或添加键值对到 userInfo,以便 App B 可以将我路由到另一个选项卡。(在这种情况下,我希望它打开另一个选项卡并搜索通用链接中的位置字符串)
我在 StackOverflow 和 Apple 开发者论坛上检查了与 NSUserActivity 的 userInfo 相关的其他问题,但他们没有在调用应用程序上更改它。(例如在应用程序 A 中)
谢谢
swift - 如何从通用链接 userActivity 显示视图控制器?
如何从 userActivity 在我的 UserActionManager 类中显示视图控制器?
我正在使用通用链接并设置了 apple-app-site-association 文件。
当我发现 userActivity.webPageURL.lastPathComponent 等于“注册”时,我想推送到 RegistrationViewController。
目前,我创建了一个单独的单例,称为 UserActionManager,我想在其中处理 lastPathComponents 并呈现正确的视图控制器。
在 UserActionManager 中我可以成功命中handleRegistrationUserActivity
,但需要添加逻辑或协议来显示相关的 ViewController。
应用委托:
用户操作管理器: