2010-11-10 5 views
0

-je ouvrir une page WebView cette page ontÉvaluer javascript valeur sur WebView, Android

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

ces javascript Lorsque j'appuie sur un bouton sur la WebView je dois lire la valeur "iPhoneStatus" et fermez l'écran WebView et décidez du résultat.

j'ai écrit ces codes dans ma classe .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; 
    } 
} 

Mais il ne vont jamais dans la méthode onJsAlert, est-il possible d'évaluer la valeur de GetStatus()

Merci

Répondre

3

Étape 1: Demandez à votre objet demo d'implémenter une méthode qui accepte la valeur de GetStatus() en tant que paramètre.

Étape # 2: Appel mWebView.loadUrl("javascript:..."), où le ... est un extrait de code source Javascript codé URL qui appelle GetStatus() et passe cette valeur à votre objet demo.