У меня есть приложение для просмотра веб-приложений Android, которое загружает веб-приложение. Он работал нормально во всех версиях Android, кроме Android 8. Проблема в том, что приложение имеет много входных данных с списком данных в виде выпадающих списков. В мобильных телефонах с Android 8 выпадающие списки не работают. Он просто действует как обычное поле ввода.
package com.example.webviewapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.MutableContextWrapper;
import android.os.Build;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.view.View;
public class MainActivity extends AppCompatActivity {
private WebView mywebView;
String webURL="http://tstcrushmate.codinoz.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mywebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings= mywebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mywebView.setWebViewClient(new WebViewClient());
mywebView.clearCache(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR_MR1) {
mywebView.getSettings().setDomStorageEnabled(true);
}
//improve webView performance
mywebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
mywebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR_MR1) {
mywebView.getSettings().setAppCacheEnabled(true);
}
mywebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR_MR1) {
webSettings.setDomStorageEnabled(true);
}
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
webSettings.setUseWideViewPort(true);
webSettings.setSavePassword(true);
webSettings.setSaveFormData(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
webSettings.setEnableSmoothTransition(true);
}
if (savedInstanceState == null)
{
mywebView.loadUrl(webURL);
}
}
@Override
protected void onSaveInstanceState(Bundle outState )
{
super.onSaveInstanceState(outState);
mywebView.saveState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState);
mywebView.restoreState(savedInstanceState);
}
@Override
public void onBackPressed() {
if(mywebView.canGoBack())
{
mywebView.goBack();
}
else
{
super.onBackPressed();
}
}
}
class InternalContext {
private static InternalContext instance;
private MutableContextWrapper mutableContext;
protected static InternalContext getInstance() {
if (instance == null) {
instance = new InternalContext();
}
return instance;
}
protected void setBaseContext(Context context) {
mutableContext.setBaseContext(context.getApplicationContext());
}
protected MutableContextWrapper getMutableContext() {
return mutableContext;
}
}
Приведенный выше код представляет мою mainactivity.java Мой android manifest.xml ниже
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.webviewapp"
tools:ignore="ExtraText,MissingVersion"
android:versionName="1.0"
android:versionCode="1">
<uses-permission android:name="android.permission.INTERNET"
android:hardwareAccelerated="true" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="Accord CrushMate"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning,RtlEnabled"
tools:targetApi="donut">
<activity android:name=".MainActivity"
android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Я не очень хорош в программировании Androidили Java. Пожалуйста, помогите с этим. Спасибо