0

I open a webview page that page have

<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>

these javascript When I press a button on the webview I have to read the "iPhoneStatus" value and close the webview screen and decide the result.

I wrote these codes in my .java class

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;
  }
}

But it never go in the onJsAlert method, is there any way to evaluate the value of GetStatus()

Thanks

1 Answer 1

3

Step #1: Have your demo object implement some method that accepts the value of GetStatus() as a parameter.

Step #2: Call mWebView.loadUrl("javascript:..."), where the ... is a snippet of URL-encoded Javascript source code that calls GetStatus() and passes that value to your demo object.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.