如何解决单击页面后是否可以隐藏android webview?
标题所说的。我有一个 webview,它加载了一个带有一个问题的调查。在用户点击/点击页面上的答案后,会出现一个“谢谢”(似乎问题元素被隐藏而谢谢详细信息变得可见)。 “谢谢”“页面”大部分是空白的,用户无法退出视图(或与此相关的页面)。我想在用户点击答案(或其他任何地方)后隐藏 webview,它仍然应该在隐藏之前接受点击。我试过使用:
// Find view
val webView: WebView = findViewById(R.id.web_view)
// Enable JS
val webSettings: WebSettings = webView.getSettings()
webSettings.javaScriptEnabled = true
// Load the page and set a listener to hide after a click.
webView.loadUrl(targetingResult.getSurveyUrl())
webView.setonClickListener {
it.visibility = View.INVISIBLE
}
但它不起作用。我认为它仍然接受页面上的点击,而不是视图/webview 本身。需要考虑的一些事项:
TL;DR - 在用户单击元素后隐藏 web 视图。让页面在隐藏 webview 的同时完成它的工作。
解决方法
有个注解叫做 JavaScriptInterface,
public class JavaScriptInterface {
Context mContext;
/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}
@JavascriptInterface
fun hideWebView() {
webView.setOnClickListener {
it.visibility = View.INVISIBLE
}
}
}
并将其设置为 WebView 如下
wv.addJavascriptInterface(JSInterface,"JSInterface");
然后你可以让web开发者像这样从他身边调用这个函数,
function hidePage()
{
JSInterface.hideWebView();
}
,
这样:
webView.setOnClickListener {
webView.visibility = View.GONE
}
另一个想法是从其父视图中删除该视图。
webView.setOnClickListener {
(webView.parent as ViewGroup).removeView(webView)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。