我一直在研究主线程和 WebView 之间的通信,但无论我尝试什么,似乎都没有发生任何事情。不幸的是,我在 Android 中并没有真正准备好 Javascript 调试控制台:-/
这可能又是一个愚蠢的小错误,但我找不到问题所在。它根本没有做任何事情。我没有看到任何错误或其他任何东西。
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
WebView web = (WebView) findViewById (R.id.web);
web.getSettings ().setJavaScriptEnabled (true);
web.setWebChromeClient (new WebChromeClient ());
JavaScriptInterface jsInterface = new JavaScriptInterface (this);
web.addJavascriptInterface (jsInterface, "accessAndroid");
}
public class JavaScriptInterface
{
Context context;
JavaScriptInterface (Context c)
{
context = c;
}
public void gotoArticle (int id)
{
jsHandler.post
(
new Runnable ()
{
public void run ()
{
//TODO//
}
}
);
}
public void showDialog (final String message)
{
jsHandler.post
(
new Runnable ()
{
public void run ()
{
showDialog (message);
}
}
);
}
}
从加载的网页运行alert ('Something');
时,一切都很好。但是dlg ('Something');
什么都不做。