标签: ios-extensions

防止Apple Watch关闭屏幕

我正在为Apple Watch编写扩展程序,目的是引导用户完成一系列步骤.我没有手表来测试扩展,但我需要确保屏幕始终保持打开状态,直到完成所有步骤.

有没有人可以告诉我何时关闭Apple Watch显示器或者是否有任何方法可以阻止显示器关闭(类似于iOS中UIApplication的idleTimerDisabled)?

apple-watch watchkit ios-extensions

3
推荐指数
2
解决办法
3355
查看次数

在iOS中重新加载内容拦截器

我听说iOS支持内容拦截器,并且所有阻塞都是由一个名为blockerList.jsonApp Bundle 的文件完成的.虽然我知道SFContentBlockerManager.reloadContentBlockerWithIdentifier()会重新加载数据blockerList.json.但是,我认为没有任何用处; 它blockerList.json是主捆绑的一部分,不能修改.因此,有什么方法blockerList.json可以修改(或扩展可以指向另一个文件,删除和重新创建,不使用JSON等)?

json ios swift ios-extensions safari-content-blocker

3
推荐指数
1
解决办法
1269
查看次数

如何在动作表中呈现动作扩展而不是全屏模态视图?

根据文档,操作扩展显示在操作表或全屏模式视图中.但对于iPhone纵向方向,默认情况下始终为全屏.如何在iPhone纵向方向的操作表中显示操作扩展视图?

我曾尝试setPreferredContentSizeNSExtensionActionWantsFullScreenPresentation.两者似乎都没有影响iPhone纵向.

iphone objective-c ios ios-app-extension ios-extensions

3
推荐指数
1
解决办法
676
查看次数

无法设置动作扩展图标,而是灰色图标

我已经尝试按照在线提供的教程设置我的动作扩展图标.我遵循的步骤:

  1. 将应用程序资产目录迁移到扩展
  2. 将所有灰色图标放在资产中
  3. 检查Assets.xcassets是否在扩展的副本包资源列表中
  4. 运行该应用程序并检查扩展名

但它只呈现灰色块: 灰色块和其他图标

可能有什么不对?

ios ios-extensions

2
推荐指数
1
解决办法
628
查看次数

使用未解析的标识符“boundingRect”

我对下面的代码有很奇怪的问题。

extension String {
        func height(withConstrainedWidth width: CGFloat, font: UIFont) -> CGFloat {
            let constraintRect = CGSize(width: width, height: .greatestFiniteMagnitude)
            let boundingBox = boundingRect(with: constraintRect, options: .usesLineFragmentOrigin, attributes: [NSAttributedStringKey.font: font], context: nil)

            return ceil(boundingBox.height)
        }
}
Run Code Online (Sandbox Code Playgroud)

它总是抛出低于编译器错误。

在此处输入图片说明

但是,如果我使用self.boundingRect它,它会成功编译并运行应用程序,但在模拟器上启动应用程序后,它会自动再次恢复boundingRect(删除self)。

所以每次我需要添加self.以执行应用程序时。

ios swift ios-extensions

2
推荐指数
1
解决办法
579
查看次数

创建没有 UI 的 iOS 操作扩展

我正在尝试创建一个类似于 iOS 中可用的系统“复制”操作的操作扩展。
我发现了不同的答案,说不可能有非全屏 UI,但根据Apple 官方文档,可能没有 UI(就像在复制操作中一样,我认为)。

操作(iOS 和 macOS;UI 和非 UI 变体)

我曾尝试创建透明视图,但结果始终是全屏黑色覆盖。
我已经在我的 中指定了NSExtensionActionWantsFullScreenPresentationto ,但没有任何变化。NOInfo.plist

关于如何做到这一点的任何想法?

ios swift ios-extensions

2
推荐指数
1
解决办法
1735
查看次数

从iOS Safari共享扩展中打开主应用程序

我有一个Safari共享扩展,我希望能够从扩展中打开主应用程序.向用户显示警报,其中他们可以选择打开应用程序.

func openAppHandler() {
    self.extensionContext?.completeRequest(returningItems: []) { (success) in
        if let url = URL(string: "myapp://...") {
            self.extensionContext?.open(url, completionHandler: nil)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

didSelectPost()调用该方法后会出现警报 ,您可以看到它出现在扩展的后台优先级完成块中.该open方法在其文档中说"在iOS 8中,只有今天的扩展点(用于创建小部件)支持这种方法." 我猜它仍然是在Safari Share Extension中仍然不支持它的情况.

有没有人知道从共享扩展中打开我的主应用程序的方法?

ios ios-extensions

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

iOS 操作扩展无法打开我的主应用程序

我希望能够在我的应用程序中打开 Safari 链接。为此,我创建了一个操作扩展。我尝试了以下代码的多种变体进行测试,但没有一个变体打开我的主应用程序:

第一次尝试:

func openContainerApp() {
        var responder: UIResponder? = self as UIResponder
        let selector = #selector(openURL(_:))
        while responder != nil {
            if responder!.responds(to: selector) && responder != self {
                responder!.perform(selector, with: URL(string: "awesome://item?id=20036169")!)
            }
            responder = responder?.next
        }
        self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil)
    }
Run Code Online (Sandbox Code Playgroud)

第二次尝试:

func redirectToHostApp() {
        let url = URL(string: "awesome://item?id=20036169")
        let selectorOpenURL = sel_registerName("openURL:")
        let context = NSExtensionContext()
        context.open(url! as URL, completionHandler: nil)

        var responder = self as UIResponder?

        while (responder != nil){
            if responder?.responds(to: selectorOpenURL) …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller uiresponder ios swift ios-extensions

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

共享扩展在模拟器上工作但在设备上不起作用

我的应用程序有一个share-extension界限。我拥有与扩展相关的所有必需信息app-ids和相关信息,适用于和。当我在 中运行扩展时,它工作得很好。例如,在(即 iPhone 6)上,当选择我的应用程序的inside时,会冻结并且无法打开任何内容。我什至无法调试它,不是因为我不知道如何执行它,而是因为它运行并随后立即停止在.provisioning-profilesdevelopmentdistributionsimulatordeviceshare extensionSafariSafariXcode

provisioning-profiles我认为或可能有问题,app-ids或者可能是由 . 引起的错误或“分发之前缺少功能” Apple

如果有人对此有任何解决方案或解释,我将非常感激。

编辑:

我更改了background-color扩展程序的视图,storyboard看看它是否根本不起作用。它确实打开了,但SLComposeServiceViewController没有显示。因此,问题一定是由它引起的。

xcode app-id provisioning-profile slcomposeviewcontroller ios-extensions

0
推荐指数
1
解决办法
2057
查看次数