Я хочу иметь кнопку, которая раскрывает некоторые другие опции в файле HTML. Я хочу получить доступ к этому HTML из Android WebView. Кажется, все работает в моем браузере P C, как и предполагалось, но каждый раз, когда я пробую его в WebView, он просто показывает анимацию строк меню, но не выпадает из неупорядоченного списка.
Вот как это выглядит на P C
.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);
}
}
Решил сам, пришлось предоставить доступ к приложению android через AndroidManifest. xml.