【发布时间】:2015-07-09 19:33:03
【问题描述】:
我在 WebView 中运行了一些 javascript。在这个 Javascript 代码中有一个返回布尔值的函数。我想检查这个函数的返回值,并取决于它是否隐藏我的android代码中的视图。我试了一天还是不行。有人知道我的错误在哪里吗?这是我的代码:
public class MyActivity extends Activity {
private static final String JS_INTERFACE = "Android";
....
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.loadUrl(getUrl(this.getResources().getString(R.string.host)));
webView.addJavascriptInterface(new WebViewJavaScriptInterface(this), JS_INTERFACE);
webView.setWebViewClient(new WebViewClient(progressBar, this, tvError));
webView.setWebChromeClient(new WebChromeClient(progressBar));
webView.loadUrl("javascript:window.Android.showAdBanner(showSdkAd())");
}
public class WebViewJavaScriptInterface
{
....
@JavascriptInterface
public void showAdBanner(String jsResult) {
if (jsResult == "true") {
((Activity) context).findViewById(R.id.adView).setVisibility(View.GONE);
} else {
((Activity) context).findViewById(R.id.adView).setVisibility(View.GONE);
}
}
}
【问题讨论】:
-
showSdkAd()是什么? -
这是一个javascript函数,它返回一个布尔值来判断视图是否必须隐藏
-
if (jsResult == "true")应该是if (jsResult == true) -
你是对的,但我刚刚测试过它并不起作用:(
标签: javascript android webview