【发布时间】:2018-07-26 12:59:13
【问题描述】:
我正在开发一个使用 Cordova 构建的适用于 iOS 和 Android 的网络应用程序。一切都很好,直到我对新的 Apple 的 iPhoneX 进行了测试。如您所知,Apple 决定移除物理主页按钮,将其替换为屏幕底部的主页指示器:
此主页指示器始终在您的屏幕上可见,并且会覆盖您的网络应用内容。当用户想要在应用程序之间导航或返回主屏幕时,他必须向上滑动这个主页指示器(这是非常敏感的)。这个奇妙的发明给我的 webapp 带来了 2 个主要问题:
- 这会破坏我的 Web 应用设计,因为它会覆盖内容。
- 系统手势输入与我的 webapp 手势冲突。我的整个游戏玩法都是基于拖放操作,所有可拖动的图标都位于屏幕底部的主页指示器下方。
1。如何隐藏主页指示器?
为了解决第一点,我找到了一个名为cordova-plugin-hide-home-indicator 的插件。这将在几秒钟不活动后隐藏(带有淡入/淡出效果)主页指示器。但是每次检测到触摸屏事件时,主页按钮都会再次可见......我有红色here 即使Objective C(Xcode)函数 prefersHomeIndicatorAutoHidden() (我猜是使用通过这个 Cordova 插件)返回 true 这并不意味着主页指示器将永远隐藏。嗯...如果有人有更好的解决方案,我将不胜感激!
2。如何锁定系统手势?
我发现了一个名为 preferredScreenEdgesDeferringSystemGestures() 的 Xcode 函数,他们解释说通常系统将始终优先处理应用程序手势,但在某些情况下(例如沉浸式游戏)你可以要求你的应用程序优先于系统。这听起来很棒!但不幸的是我对Objective C一无所知:)我没有找到任何关于这一点的插件。
在 10:33 来自 Apple 的 video 中,他们讨论了 边缘保护,这应该可以通过赋予应用程序手势优先级来解决问题,但同样,我没有找到任何Cordova 插件...
有什么想法吗?谢谢!
【问题讨论】:
标签: ios cordova plugins gesture iphone-x