Оцените значение JavaScript в WebView, Android - PullRequest
0 голосов
/ 11 ноября 2010

Я открываю страницу веб-просмотра, на этой странице есть

<script type="text/javascript">
  var addToBasketDisabled=false;
  var iPhoneStatus=""; 
  function GetStatus()
  {
    return iPhoneStatus;//Master Pagelerde tanımlı
  }

  var path = "http://www.yemeksepeti.com/App_Themes/Default_tr-TR/images/IPhone/";             
  function PreLoadDisabledButton()
  {
    var image = new Image();   
    image.src=path + "Iphone-button-ekle-pasif.png";
  }

  function DisableAddButton()
  {
    addToBasketDisabled= true;
    var buttonObject = document.getElementById("ctl00_AddToBasket");
    buttonObject.src = path + "Iphone-button-ekle-pasif.png";
  }

  function EnableAddButton()
  {
    addToBasketDisabled= false;
    var buttonObject = document.getElementById("ctl00_AddToBasket");
    buttonObject.src = path + "Iphone-button-ekle.png";
  }

  function OnAddButtonClick()
  {
    if(addToBasketDisabled)
    {
      return false;
    }
    DisableAddButton();
    var validateValue= ValidateInput(); 
    if(!validateValue)
    {
      EnableAddButton();
      return false;
    }
  }
  PreLoadDisabledButton();
</script>

эти javascript Когда я нажимаю кнопку в веб-просмотре, мне нужно прочитать значение «iPhoneStatus», закрыть экран веб-просмотра и определить результат.

Я написал эти коды в своем классе .java

mWebView = (WebView) findViewById(R.id.webview);

WebSettings webSettings = mWebView.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(false);

mWebView.setWebChromeClient(new MyWebChromeClient());

mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");

mWebView.loadUrl(feedurl);
final class DemoJavaScriptInterface
{

  DemoJavaScriptInterface()
  {
  }

  public void clickOnAndroid()
  {
    mHandler.post(new Runnable()
    {
      public void run()
      {
        mWebView.loadUrl("javascript: GetStatus()");
      }
    });
  }
}

final class MyWebChromeClient extends WebChromeClient
{
  public void onCloseWindow(WebView window)
  {
    window.destroy();
  }
  public boolean onJsAlert(WebView view, String url, String message, JsResult result)
  {
    Log.i("log ", message);
    result.confirm();
    return true;
  }
}

Но это никогда не входит в метод onJsAlert, есть ли способ оценить значение GetStatus ()

Спасибо

1 Ответ

3 голосов
/ 11 ноября 2010

Шаг # 1: Пусть ваш объект demo реализует какой-то метод, который принимает значение GetStatus() в качестве параметра.

Шаг # 2: Вызовите mWebView.loadUrl("javascript:..."), где ... - это фрагмент исходного кода Javascript в кодировке URL, который вызывает GetStatus() и передает это значение вашему demo объекту.

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