我一直在研究主线程和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');
没有做任何事情。