gpt4 book ai didi

javascript - 评估 WebView、Android 上的 javascript 值

转载 作者:行者123 更新时间:2023-11-30 23:42:33 25 4
gpt4 key购买 nike

我打开一个网页 View 页面,该页面有

<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”值并关闭 WebView 屏幕并决定结果。

我在我的 .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 步:让您的 demo 对象实现一些接受 GetStatus() 值作为参数的方法。

第 #2 步:调用 mWebView.loadUrl("javascript:..."),其中 ... 是 URL 编码的 Javascript 源代码 fragment 调用 GetStatus() 并将该值传递给您的 demo 对象。

关于javascript - 评估 WebView、Android 上的 javascript 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4149371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com