2010-11-10 1 views
0

открывает Webview страницы, что страница имеетОценка яваскрипта значения на 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> 

эти Javascript При нажатии кнопки на WebView я должен прочитать значение «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()

Благодарности

ответ

3

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

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