gpt4 book ai didi

android - 如何使模态弹出窗口在 webview 中获得焦点?

转载 作者:行者123 更新时间:2023-11-30 01:24:01 26 4
gpt4 key购买 nike

在我的 Android 应用程序中,我正在显示一个网页。有时网页会打开模式弹出窗口/对话框,但滚动焦点仍保留在网页中而不是弹出窗口中。如何控制此处的焦点?

最佳答案

您可以创建一个 WebAppInterface 来显示对话框。

public class WebAppInterface {
Context mContext;

/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}

/** Show a toast from the web page */
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}}

并在您的 WebView 中设置此界面

WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");

这为在 WebView 中运行的 JavaScript 创建了一个名为 Android 的界面。此时,您的 Web 应用程序可以访问 WebAppInterface 类。例如,下面是一些 HTML 和 JavaScript,它们在用户单击按钮时使用新界面创建消息框:

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />

<script type="text/javascript">
function showAndroidToast(toast) {
Android.showToast(toast);
}

无需从 JavaScript 初始化 Android 界面。 WebView 会自动将其提供给您的网页。因此,在单击按钮时,showAndroidToast() 函数使用 Android 接口(interface)调用 WebAppInterface.showToast() 方法。

源泉:http://developer.android.com/intl/es/guide/webapps/webview.html

关于android - 如何使模态弹出窗口在 webview 中获得焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36688640/

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