0

我想从我的活动中放入变量并将其显示在 html 中。下面是我如何将变量插入 webview 但我不确定我应该如何从 html 获取数据并以“textview”形式显示它?

编辑

爪哇

    webView = (WebView)findViewById(R.id.webView);
    webView.setWebViewClient(new WebViewClient());
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setDatabaseEnabled(true);
    webView.getSettings().setDatabasePath("/data/data/com.example.hybrid/hybrid_user");
    webView.loadUrl("file:///android_asset/www/index.html");
    webView.loadUrl("javascript:callFromActivity(\""+userid+"\")");

html

<body>
<form>
    <fieldset>
        <legend>Hybrid Application</legend>
        <p>
            <label>UserName: </label> 
        </p>
        <p id="mytext">Hello!</p>
        <p>
            <label>Mobile Number :</label>
            <input type = "text"
                        id = "mobileNum" />
        </p>
            <button type="button" 
            onclick="updateRecord()">Submit</button>    
                <div id="output"></div> 
    </fieldset>
</form> 

 <script>
    function errorHandler(transaction, error){
        alert('Error:'+error.message+' (Code '+error.code+')');
        return true;
    }
    window.onerror = errorHandler;
    var shortName = 'hybrid_user';
    var version = '1.0';
    var displayName = 'Hybrid Database';
    var maxSize = 65536;
    var db = openDatabase(shortName, version, displayName, maxSize);

    function updateRecord(id, textE1){
        database.transaction(function(tx){
            tx.executeSql("UPDATE hybrid_user SET mobile = ? WHERE userid = ?", [textE1.innerHTML, id], null, onError);
        })
    }

    function callFromActivity(msg){
        document.getElementById("mytext").innerHTML = msg;          
    }
</script>

我是 html 新手,我不知道我的代码有什么问题,它没有userid在 html 页面中显示出来。任何意见和答案将不胜感激!

编辑更新

 webView.loadUrl("javascript:callFromActivity(\""+userid+"\")");

显然是系统没有经过这行代码。无论如何都要通过这段代码吗?

4

2 回答 2

0

尝试更改 innerHTML 的值,如下所示:

function callFromActivity(msg) {
   document.getElementById("mytext").value = msg;          
}
于 2013-03-21T04:10:49.583 回答
0
    webView.setWebViewClient(new WebViewClient(){

        @Override
        public void onPageFinished(WebView view, String url){
            webView.loadUrl("javascript:callFromActivity(\""+userid+"\")");
        }
    });

我用这个解决了我的问题。页面加载完成后,它将执行上述代码并userid从活动中获取。

于 2013-03-22T02:44:07.197 回答