gpt4 book ai didi

ios - 蓝牙键盘在 Flutter webview 上不起作用。 (iOS + 硬件键盘)

转载 作者:行者123 更新时间:2023-12-04 16:24:27 31 4
gpt4 key购买 nike

我们开发了一个应用程序,我们需要在其中打开一个 WebView 来向用户显示一个文本编辑器。用户与编辑器交互后,我们需要从 URL 中获取一些数据。
为了显示 WebView,我们使用包 webview_flutter: ^2.0.8,问题是一些用户想要将他们的蓝牙键盘连接到他们的设备,而 webview 部分无法识别 iOS 上的蓝牙键盘。
首先,我们认为这是由于蓝牙的某些许可,但显然事实并非如此,因为我们添加了这些许可并且没有任何变化,除此之外,文本字段和文本编辑器在应用程序的其他部分完美运行,问题仅在iOS上运行的webview上。
由于我们需要 URL 数据,我按照此 link 中描述的步骤进行了操作。 .然后我以与在此 example 中完成的方式类似的方式将 webview 作为模式打开。 ,但无论如何它无法识别键盘。
我尝试的下一件事是包装 FlutterViewController UINavigationController ,以便我可以导航到 WebViewController 我创建的,但是当执行此行时:

let controller : FlutterViewController = window?.rootViewControlleras! FlutterViewController


触发此错误:

Could not cast value of type 'UINavigationController' (0x11732c8f0) to 'FlutterViewController' (0x111370520).


我是 Swift/iOS 的新手,所以我不知道如何解决这个问题。
有没有办法实例化或获取 BinaryMessengerFlutterViewController创建 FlutterMethodChannel ?
您知道以不同方式打开 webview 的包吗?因为我也试过其他的包,但显然它们都和 webview_flutter 做的一样,也就是它们使用 UiKitView对于这个问题,这对我不起作用。
这是一个 repo,我尝试解决这个问题: https://github.com/jorgesarabia/flutter_hc_webview_example
谢谢!

最佳答案

在此公关 github错误已修复,但尚未发布。
您可以使用此临时解决方案(在您的 IOS 项目文件 ios/Runner/AppDelegate.swift 中):

extension FlutterViewController {
open override func pressesBegan(_ presses: Set<UIPress>, with event: UIPressesEvent?) {
super.pressesBegan(presses, with: event)
}

open override func pressesEnded(_ presses: Set<UIPress>, with event: UIPressesEvent?) {
super.pressesEnded(presses, with: event)
}

open override func pressesCancelled(_ presses: Set<UIPress>, with event: UIPressesEvent?) {
super.pressesCancelled(presses, with: event)
}
}

关于ios - 蓝牙键盘在 Flutter webview 上不起作用。 (iOS + 硬件键盘),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68091663/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com