Как выполнить функцию JavaScript с Android Direct - PullRequest
0 голосов
/ 15 октября 2018

У меня есть веб-приложение, которое загружает почти все содержимое с помощью функции jQuery AJAX.Моя проблема здесь в том, что когда я нажимаю на кнопку возврата на мобильном устройстве, она не запускается, а закрывается или перезагружается.Со своего веб-сайта я создал функцию jquery, чтобы вернуться и работает нормально, поэтому я подумал о том, чтобы выполнить эту функцию внутри кода Android с предыдущим URL-адресом сохранения.Поэтому я создал JavascriptInterface, чтобы получить предыдущий URL из jQuery FSAndroid.setAsycUrlInterface(url), но моя проблема в том, как мне выполнить jsBackAsync(from, url) внутри моего кода Android в onKeyDown?

Вот мой класс JavascriptInterface

public class AsyncInterface {
        Context iContext;
        AsyncInterface(Context contex) {
            iContext = contex;
        }

        @JavascriptInterface 
        public void setAsycUrlInterface(String geturl) {
            SharedPreferences prefs = getSharedPreferences(getPackageName(), MODE_PRIVATE);
            SharedPreferences.Editor edit = prefs.edit();
            edit.putString("lastAsyncUrl", geturl);
            edit.commit();
        }
    }

Вот метод onKeyDown

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && shopwebview.canGoBack()) {
        shopwebview.goBack();
        /* Something like this i want to do
        SharedPreferences asyncprefs = getSharedPreferences(getPackageName(), MODE_PRIVATE);
        String lastAsyncUrlTab = asyncprefs.getString("lastAsyncUrl", "");
        if(!lastAsyncUrlTab.equals("")) {
            jsBackAsync("Android", lastAsyncUrlTab);
        }
        */
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

Вот мой код jquery

$(document).ready(function(){
    $('a.AsyncUrl').click(function(){
        var url = $(this).attr('href');
        FSAndroid.setAsycUrlInterface(url);
    });

    function jsBackAsync(from="button", url){
        if(from == 'Android'){
            /*Clear the back url or set new one here*/
            FSAndroid.setAsycUrlInterface(null);
        }
        $('#PageSet').load(url);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...