HTML / JS Кнопка выпадающего меню не отображается Android Studio WebView - PullRequest
0 голосов
/ 13 апреля 2020

Я хочу иметь кнопку, которая раскрывает некоторые другие опции в файле 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.

1 Ответ

0 голосов
/ 14 апреля 2020

Решается добавлением <uses-permission android:name="android.permission.INTERNET"/> в AndroidManifest. xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...