如何在 WebView 中获取 InputConnection?

Posted

技术标签:

【中文标题】如何在 WebView 中获取 InputConnection?【英文标题】:How can i get InputConnection in WebView? 【发布时间】:2021-06-16 16:49:53 【问题描述】:

在我的 Web View 项目中,我需要处理 android 软键盘

如果我不扩展 Web 视图,我如何获得输入连接??????

mBinding.wvMain.onCreateInputConnection(new EditorInfo());

我想这样使用...

public InputConnection onCreateInputConnection(EditorInfo outAttrs) 
    BaseInputConnection ic = new BaseInputConnection(this, true);
    outAttrs.inputType = InputType.TYPE_CLASS_NUMBER; // Tells the keyboard to show the number pad
    return ic;
 

【问题讨论】:

【参考方案1】:

第一步:创建自己的类并继承WebView

class CustomWebView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null
) : WebView(context, attrs) 
override fun onCreateInputConnection(outAttrs: EditorInfo?): InputConnection 
    val ic = BaseInputConnection(this, true)
    outAttrs!!.inputType =
        InputType.TYPE_CLASS_NUMBER
    return ic

第 2 步:在您的 XML 中使用 CustomWebView

<com.example.testapp.CustomWebView
        android:id="@+id/wvMain"
        android:layout_
        android:layout_
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:longClickable="false" />

现在,在您的 Activity 中,您可以使用自定义 Web 视图。

mBinding.wvMain.loadUrl(url)
mBinding.wvMain.settings.javascriptEnabled = true

【讨论】:

以上是关于如何在 WebView 中获取 InputConnection?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用动态 URL 从 webview 获取 JSON?

如何获取在webview中显示的html页面的整个内容文本

如何在 Java 中使用 WebResourceRequest 获取 WebView 的 Url?

android webview如何获取网页输出的提示信息

如何在android webview中获取完成youtube视频的事件

swift 如何获取webView的内容高度