【问题标题】:WKWebView migration issuesWKWebView 迁移问题
【发布时间】:2019-10-16 10:51:41
【问题描述】:

关于我之前的问题 Migrating iOS Hybrid App from UIWebView to WKWebview

我已经取得了很好的进展,只有一些零散的事情需要整理。与 UIWebView 相比,整体性能提升非常出色。

在 UIWebView 中,可以使用

以编程方式将焦点设置在文本字段上
webView.keyboardDisplayRequiresUserAction = NO ;

然而,这在 WKWebView 中不可用,自 2016 年以来,程序员一直在开发一种更新的变通方法(swizzles)来克服这个问题。

我已经尝试实现我在 Stack Overflow 上可以找到的最新版本,我在 https://stackoverflow.com/a/55344531/5948260 找到了

但是,由于我对 XCode 中的编码非常缺乏经验,请有人能准确地告诉我如何将上述解决方案添加到我的项目中。我徒劳地试图找到如何做到这一点的例子 在 GitHub 或其他地方,但无济于事。

到目前为止,我已尝试将上述答案中提供的代码复制到 .m 文件中并将其添加到我的项目中,但出现了 20 个左右的错误,然后我为 Foundation 添加了一个导入语句,其中大部分都消失了但是 XCode 抱怨它不知道 WebViewInjection 是什么类。还必须有相应的头文件吗?一定要有对应的接口语句吗?答案中定义的方法如何被调用? 由于我无法回答其中任何一个问题,我还尝试将该方法添加到我的 ViewController 类中。虽然这被接受没有错误,但它对我的应用程序没有影响,即。键盘没有自动出现。

我还希望 webview 调整大小以显示在键盘上方,而不是滚动到文本字段所在的位置,因为这对我来说似乎是一个非常混乱的解决方案。

非常感谢所有帮助。

【问题讨论】:

    标签: wkwebview


    【解决方案1】:

    我现在已经设法通过添加来显示键盘

    [self allowDisplayingKeyboardWithoutUserAction];
    

    查看DidLoad

    我在 ViewController 中保留了 allowDisplayingKeyboardWithoutUserAction 方法声明,但将方法声明前面的 + 更改为 -,这似乎有效。

    我仍然不知道如何在显示键盘时调整 webview 的大小。

    【讨论】:

    • 嗨@Steve,这个不适用于我的 13.6 和 iOS 14 beta。需要对该方法进行任何更改吗?
    • 感谢您提醒我们需要进行更多研究。到目前为止,我只更新到 13.4,所以我没有注意到,但我有一部新 iPhone 到了周末,所以我相信那时我会发现的。为什么地球不能停止运动?回答你的问题我不知道。对不起。
    • 嗨@Harsh,它在 13.6 和 13.7 上仍然适用于我。 14 日尚未测试
    猜你喜欢
    • 2016-09-27
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 2018-11-27
    • 2021-11-20
    • 2015-01-04
    相关资源
    最近更新 更多