背景:
我正在开发的 iOS 应用程序是一个本机应用程序,但有一些使用 SFSafariViewController 的 Web 视图。出于安全要求,应用程序需要阻止用户使用第 3 方键盘进行文本输入。这对于本机代码来说非常简单,使用:
func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplication.ExtensionPointIdentifier) -> Bool {
if extensionPointIdentifier == UIApplication.ExtensionPointIdentifier.keyboard {
return false
}
return true
}
但是,这不适用于使用 SFSafariViewController 实现的 Web 视图,因为当用户尝试在 html 文本字段中输入文本时,他可以选择第 3 方键盘。
我们的渗透测试合作伙伴建议在 WKWebView 中重新实现这些 Web 视图。
问题:
查看 SFSafariViewController 和 SFSafariViewControllerDelegate,我没有看到任何方法可以阻止使用第 3 方键盘,除非有办法使用 html 或 javascript 来做到这一点。如果有办法,真的很感谢有关如何做到这一点的帮助吗?
如果我必须使用WkWebView,会
func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplication.ExtensionPointIdentifier) -> Bool {
if extensionPointIdentifier == UIApplication.ExtensionPointIdentifier.keyboard {
return false
}
return true
}
也适用于 WkWebView 还是仅适用于本机代码?如果没有,我如何防止/禁用第 3 方 WkWebView 中显示的 html 文本框中是否使用键盘?
提前致谢!
我相信我找到了问题的答案
func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplication.ExtensionPointIdentifier) -> Bool {
if extensionPointIdentifier == UIApplication.ExtensionPointIdentifier.keyboard {
return false
}
return true
}
除了防止在本机文本字段中使用第 3 方键盘之外,它还适用于 WKWebView 中呈现的 html 文本字段,但不适用于 SFSafariViewController