Я работал над приложением, использующим WebView на Android Studio, и застрял на кнопке, чтобы открыть и закрыть окно (div) с HTML, CSS и JavaScript. Проблема в том, что функция кнопок хорошо работает только в версии Android 8.0 (эмулятор Genymotion), и я не знаю, почему это происходит, потому что некоторые другие функции работают нормально.
Пример кода:
HTML
Кнопка:
<button onclick="open_window()" class="button_template">ABC</div>
DIV, чтобы открыть:
<div class="window_template" id="window_1">12345</div>
Стиль CSS:
.window_template{
background-image: url(sample.jpg);
opacity: 0.9;
border: 2px solid black;
text-align: center;
margin: 0 auto;
box-sizing: border-box;
}
.button_template {
color: white;
font-family: Arial;
font-size: 105%;
background-color: transparent;
border: none;
cursor: pointer;
}
window_1{
width: 80%;
height: 35%;
position: absolute;
display: none;
}
JavaScript:
function open_window(){
document.getElementById("window_1").style.display="block";
}
Основная деятельность:
package sample.sampla;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN );
setContentView(R.layout.activity_main);
WebView myWebView = (WebView)findViewById(R.id.webView1);
WebSettings mySettings = myWebView.getSettings();
myWebView.setWebChromeClient(new WebChromeClient());
myWebView.setWebViewClient(new WebViewClient());
mySettings.setDomStorageEnabled(true);
mySettings.setJavaScriptEnabled(true);
myWebView.loadUrl("file:///android_asset/www/index.html");
}
}
Ведь DIV не открывается.