【问题标题】:Pass String to webview and display将字符串传递给 webview 并显示
【发布时间】:2016-01-20 16:01:18
【问题描述】:

我正在尝试将 versionName 字符串传递给 webview 并在我的 html 页面上显示该字符串。这是我尝试过的。

try {
    myWebView.getSettings().setJavaScriptEnabled(true);
    String versionName = getPackageManager()
                            .getPackageInfo("com.chad.flashupdate", 0)
                            .versionName;
    myWebView.loadUrl("javascript:init('" + versionName + "')");
} catch (NameNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

然后我尝试使用这个来加载和显示字符串。

 $( document ).ready(function() { $("#MyEdit").html(versionName); });

在我的 html 中我放了这个。

<div id="MyEdit"><B>
 versionName will be displayed here!
</B></div>

当我尝试什么都没有发生时,这意味着 div 文本永远不会改变。所以也许 webview 没有加载字符串。感谢您的帮助!

【问题讨论】:

    标签: android html webview


    【解决方案1】:

    您不应该为此需要 javascript。试试这个:

    String htmlString = "<div id='MyEdit'><b>VERSION NAME</b></div>";
    webView.loadData(htmlString, "text/html; charset=utf-8", "UTF-8");
    

    【讨论】:

    • 还有一个问题。当我加载 webview 时,它只显示 div。如何在资产中加载普通的 html 文件并将该 div 更改为 htmlString?当我添加您的代码时,它只显示加载时的 div。
    • 这让事情变得有点复杂。有多种方法可以从文件中加载 html,但将您的版本放入其中会更复杂。这是获取资产文件作为字符串的链接:stackoverflow.com/questions/16110002/read-assets-file-as-string。之后,我会查找某个文本字符,然后将其替换为您拥有的版本。
    • 这不是问题的正确答案。
    • @doctorram 怎么样?它正在做问题所要求的?你想要一个 javascript 桥接答案吗?
    • @DroidChris 问题是如何将字符串参数传递给 HTML。您的答案从字符串启动 WebView。几乎与问题完全无关!
    猜你喜欢
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2020-04-08
    相关资源
    最近更新 更多