1

我一直在研究主线程和 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');什么都不做。

4

0 回答 0