@Krasavchik26

Почему не работает скачка файлов или открытие галереи на любых сайтах?

А как сделать чтобы все скрипты внутри браузера работали? Ява скрипт включен. Но к примеру, если загрузить какой нибудь онлайн чат, то не работает не прикрепление файла, ни подъем вверх текстового поля при открытии клавиатуры, а просто клавиатура его перекрывает. В настоящем браузере все это работает. Видно, что где то, что то дописать нужно. Можете даже попробовать на этом чате https://pubglite.chatbro.com как оно работает в браузере хром и как в андроид студио.

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.besedka_layout);
if (getSupportActionBar() != null);

web = findViewById(R.id.webView);
WebSettings ws = web.getSettings();
ws.setJavaScriptEnabled(true);
web.loadUrl("https://pubglite.chatbro.com");
web.getSettings().setDomStorageEnabled(true);
web.setWebViewClient(new MyWebViewClient());
}

private class MyWebViewClient extends WebViewClient {
@Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}

@Override public void onPageFinished(WebView view, String url) {
}

@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
}
}

@Override
public void onBackPressed() {
if (web.canGoBack())
web.goBack();
else
super.onBackPressed();
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 1
Гуглится как android webview html5 features
wv = (WebView) findViewById(R.id.webview);
    WebSettings ws = wv.getSettings();

    ws.setJavaScriptEnabled(true);
    ws.setAllowFileAccess(true);


    if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.ECLAIR) {
        try {
            Log.d(TAG, "Enabling HTML5-Features");
            Method m1 = WebSettings.class.getMethod("setDomStorageEnabled", new Class[]{Boolean.TYPE});
            m1.invoke(ws, Boolean.TRUE);

            Method m2 = WebSettings.class.getMethod("setDatabaseEnabled", new Class[]{Boolean.TYPE});
            m2.invoke(ws, Boolean.TRUE);

            Method m3 = WebSettings.class.getMethod("setDatabasePath", new Class[]{String.class});
            m3.invoke(ws, "/data/data/" + getPackageName() + "/databases/");

            Method m4 = WebSettings.class.getMethod("setAppCacheMaxSize", new Class[]{Long.TYPE});
            m4.invoke(ws, 1024*1024*8);

            Method m5 = WebSettings.class.getMethod("setAppCachePath", new Class[]{String.class});
            m5.invoke(ws, "/data/data/" + getPackageName() + "/cache/");

            Method m6 = WebSettings.class.getMethod("setAppCacheEnabled", new Class[]{Boolean.TYPE});
            m6.invoke(ws, Boolean.TRUE);

            Log.d(TAG, "Enabled HTML5-Features");
        }
        catch (NoSuchMethodException e) {
            Log.e(TAG, "Reflection fail", e);
        }
        catch (InvocationTargetException e) {
            Log.e(TAG, "Reflection fail", e);
        }
        catch (IllegalAccessException e) {
            Log.e(TAG, "Reflection fail", e);
        }
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы