【问题标题】:How to make a button in an extension redirect the user to a certain page如何使扩展中的按钮将用户重定向到某个页面
【发布时间】:2020-12-22 14:24:42
【问题描述】:

概述
我正在快速构建一个自定义键盘扩展,我想让一个按钮将用户重定向到其父应用程序中的某个页面。

我在做什么
我在键盘上创建了一个按钮,应该将用户带到应用程序并且它可以工作。

 @objc func openURL(_ url: URL) {
          return
      }
   func openApp(_ urlstring:String) {
        
        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: urlstring)!)
                return
            }
            responder = responder?.next
        }
    }
@IBAction func openShop(_ sender: Any) {
  openApp ("myapppurl")
  parent?.performSegue(withIdentifier: "Shop", sender: self)//Shop is the identifier of a segue in my app.
}

当然,我将此添加到我的应用程序的 info.plist 文件中。

问题
当我按下按钮时,它会将我带到应用程序,但它显示的是主 vc,而不是我需要的页面。

问题
如何让按钮直接将我带到所需的 vc?

【问题讨论】:

    标签: ios swift uiviewcontroller keyboard segue


    【解决方案1】:

    您无法从扩展程序执行Segue 到容器应用程序。为了执行Segue 到工作视图需要在前台。当您执行 Segue 时,容器应用程序处于后台,这就是它不执行任何操作的原因。

    您需要在容器 App 中处理深层链接。

    在您的 openApp URL“myapppurl//shop”中添加目的地

    这应该会在容器应用中触发openURL[enter link description here][1]

    和 URL 参数应该给你请求的目的地。在那里你可以处理深层链接的逻辑。

    【讨论】:

    • 抱歉耽搁了回复,非常感谢您的回答...无论如何。我不清楚我必须在哪里添加这个“myapppurl//shop”以及你的答案中是什么商店。是标识符还是视图控制器名称?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 2013-05-09
    • 2013-07-29
    相关资源
    最近更新 更多