【问题标题】:Android WebView: how to load page after javascript executionAndroid WebView:javascript执行后如何加载页面
【发布时间】:2013-06-17 11:03:42
【问题描述】:

this SO question有关,

我想删除通知以及在 android 的 WebView 中显示 TeX 时发生的闪烁。

在将数据加载到 WebView 之前,我尝试了 AsyncTask 方法来预加载页面,然后“下载”它,但我遇到了 IllegalStateException:目标主机不能为空,或者在参数中设置。此错误来自以下代码:

    protected String doInBackground(String... url) {
        String r = "";
        try {
            HttpClient hc = new DefaultHttpClient();
            HttpGet get = new HttpGet(URLEncoder.encode(url[0], "UTF-8"));
            // get.setHeader("host", "http://myapp");
            HttpResponse hr = hc.execute(get);
        ...
    }

注释掉的行是我试图修复此错误但从未奏效的行。

现在我在想我无法解决这个问题,因为我正在加载的 url[0] 格式为:javascript:somescript(input) 从存储在我的资产中的 JS 文件执行,并且可能 HttpGet 需要 Web 服务器?

如何在更新 WebView 之前隐藏通知并完成 JavaScript?

【问题讨论】:

    标签: javascript android webview get android-asynctask


    【解决方案1】:

    HttpGet 类用于 HTTP 请求,因此 URL 必须以 http:// 开头。

    如果您使用 MathJax 作为 TeX 查看器,然后引用 this Stack Overflow question,您可以将 messageStyle: "none" 添加到您的 MathJax 配置中。这种方式可以在任何环境中禁用 MathJax 的加载通知。

    【讨论】:

    • 谢谢大卫,但实际上我已经禁用了 messageStyle:"none"showProcessingMessages: false 的消息,而我还有另一个问题是消除闪烁,而 MathJax 是“排版”
    • 也许如果我自定义 MathJax.js 文件,我可以更改 MathJax 的行为以在排版时隐藏 DOM 元素,然后在完成后显示?
    • 嗨@Ozzy你有解决这个在加载mathjax时闪烁问题的方法吗?请告诉我
    猜你喜欢
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 2011-09-02
    • 2010-11-05
    • 1970-01-01
    • 2015-02-25
    相关资源
    最近更新 更多