HTML / JS 下拉菜单按钮不会放在 Android Studio WebView 中

Posted

技术标签:

【中文标题】HTML / JS 下拉菜单按钮不会放在 Android Studio WebView 中【英文标题】:HTML / JS Dropdown Menu Button doesn't drop in Android Studio WebView 【发布时间】:2020-07-26 08:39:53 【问题描述】:

我想要一个按钮,它会在 html 文件中下拉一些其他选项。我想从 android WebView 访问这个 HTML。在我的 PC 浏览器上,一切似乎都按预期工作,但每次我在 WebView 中尝试它时,它只会显示菜单栏的动画,但不会下拉无序列表。

这是它在 PC 上的样子

.header
	background: #20211c;

.nav
	padding-top:10px;


nav ul
	position:absolute;
	color:#29B08E;
	margin:0;
	padding:0;
	width:wrap_content;
	transform-origin:top;
	transform: perspective(1000px) rotateX(-90deg);
	transition:0.5s;


nav ul.active
	transform: perspective(1000px) rotateX(0deg);


nav ul li
list-style:none;
color:white;
background-color: #29B08E;

.dropdown
	display: inline;
	padding-right:10px;


nav ul li a
	display: block;
	color:white;
	padding: 10px;
	text-align: center;
	text-decoration: none;
	border-bottom: 1px solid rgba(0,0,0,.2);


.inhalt
	color:white;

.uberschrift
	color:#CB4048;


button
	font-family:tahoma;
	color:white;
	position:relative;
	width:wrap_content;
	height:wrap_content;
	front-size:24px;
	background:#20211c;
	border: 2px;
	border-color:white;
	box-shadow: none;
	outline: none;



.container 
  display: inline-block;
  cursor: pointer;


.bar1, .bar2, .bar3 
  width: 35px;
  height: 5px;
  background-color: white;
  margin: 6px 0;
  transition: 0.4s;


.change .bar1 
  -webkit-transform: rotate(-45deg) translate(-9px, 6px);
  transform: rotate(-45deg) translate(-9px, 6px);


.change .bar2 opacity: 0;

.change .bar3 
  -webkit-transform: rotate(45deg) translate(-8px, -8px);
  transform: rotate(45deg) translate(-8px, -8px);
<DOCTYPE !html>
  <html>
  <head>
    <meta charset="UTF-8">
    <link rel = "stylesheet" href="style.css" type="text/css">
    <body>
<nav>
      		<button>
      			<div class="container" onclick="myFunction(this)">
      			<p><strong>Menü</p>
      			<div class="container" onclick="myFunction(this)">
      			<div class="bar1"></div>
      			<div class="bar2"></div>
      			<div class="bar3"></div>
      		</div>
      		<script> function myFunction(x)
      			x.classList.toggle("change");
      		
      		</script></button>
      		<ul>
      		<li>Menu1</li>
      		<li>Menu2</li>
      		<li>Menu3</li>
      		<li>Menu4</li>
      		<li>Menu5</li>
      		</ul>
      		</div>
      		<script
      				src="https://code.jquery.com/jquery-3.4.1.js"></script>
      				<script type="text/javascript">
      				$(document).ready(function()
      				$("button").click(function()
      				$("nav ul").toggleClass("active");););
      			</script>
</nav>
      </body>
      </head>
      </html>

但正如我所说,在移动设备上它只是做动画。

Android Studio 代码:

public class MainActivity extends AppCompatActivity 
WebView webView;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String indexhtml ="file:///android_asset/index.html";
    webView = (WebView) this.findViewById(R.id.wv_webview);
    webView.setWebViewClient(new WebViewClient()
    
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        
            Log.i("WebView", "Attempting to load URL: " + url);

            view.loadUrl(url);
            return true;
        
    );
    WebSettings websetting = webView.getSettings();
    websetting.setJavaScriptEnabled(true);
    websetting.getJavaScriptCanOpenWindowsAutomatically();
    webView.setWebChromeClient(new WebChromeClient());
    webView.loadUrl(indexhtml);



自己解决了, 必须通过 AndroidManifest.xml 授予对 android 应用程序的访问权限。

【问题讨论】:

@Sandeep 是的,我做了,我将我的 android studio 代码编辑到线程中 【参考方案1】:

通过在AndroidManifest.xml中添加&lt;uses-permission android:name="android.permission.INTERNET"/&gt;解决

【讨论】:

以上是关于HTML / JS 下拉菜单按钮不会放在 Android Studio WebView 中的主要内容,如果未能解决你的问题,请参考以下文章

js实现按钮开关.单机下拉菜单

如何将HTML中下拉菜单和文本区域的值传递到java中的

使用html和css实现元素下拉框的方法

Bootstrap 学习 - 菜单 - 按钮 - 导航

JS 按钮下一步 下拉菜单内容转换

选择特定的下拉菜单项后,下拉按钮的值不会改变