如何根据 API 响应触发应用内导航
Posted
技术标签:
【中文标题】如何根据 API 响应触发应用内导航【英文标题】:How to trigger in-app navigation based on API response 【发布时间】:2019-07-17 14:14:56 【问题描述】:这个问题与 ios (swift) 和 android 相关。
我正在为我们的移动应用程序需要集成的横幅系统构建后端实现。一些横幅需要在按下时将用户重定向到应用程序的某个部分。
根据 API 调用中返回的数据触发路线导航的最佳做法是什么?
例如,JSON 中的横幅对象列表,其中键引用要导航到的页面 - 是否会在此处应用深度链接,应用程序创建可以通过传递字符串来引用的路由映射是否有意义?
我觉得这里必须有一个简单的解决方案,但我正在与之合作的移动团队似乎非常坚定。
【问题讨论】:
【参考方案1】:在我当前的项目 (iOS) 中,我们使用深层链接将导航映射到我们应用的某个选项卡。因此,您可以通过 JSON 发送它,然后发布您的主控制器正在监听的通知(例如 TabBarController),然后选择要转到的所需索引或您需要的任何其他导航逻辑。
// 向 DeepLinkKit pod (https://github.com/button/DeepLinkKit) 注册深度链接
self.router?.register("a/created/path") link in
if let link = link
debugPrint("Router: \(String(describing: link.url))")
NotificationCenter.default.post(
name: Notification.Name(Configuration.App.kGoToSomewhere),
object: nil
)
或者只是从您的 JSON 中提取,然后设置通知
call URL in
NotificationCenter.default.post(
name: Notification.Name("ANotification"),
object: nil
)
然后在你的主控制器中
class MainTabBarController: UITabBarController
func viewDidLoad()
super.viewDidLoad()
NotificationCenter.default.addObserver(
self,
selector: #selector(selectTab),
name: Notification.Name("ANotificaton"),
object: nil
)
func selectTab()
// Do your navigation logic here
希望对你有帮助!
【讨论】:
以上是关于如何根据 API 响应触发应用内导航的主要内容,如果未能解决你的问题,请参考以下文章
如果下游服务响应 401,如何在 Zuul API 网关中触发 OAuth2 身份验证