如何在android中使用现有的html内容附加附加文本? [英] How to append additional text with existing html content in android?

查看:21
本文介绍了如何在android中使用现有的html内容附加附加文本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个应用程序.在其中我将一个文本附加到存储在 .html 文件中的现有文本中,.html 文件的位置在我的应用程序的assets"文件夹中.我知道如何使用 URL 加载 html,但我的问题是附加文本.以下是我的java代码

public class LoadWeb extends Activity {WebView wv;私人处理程序处理程序 = null;/** 在第一次创建活动时调用.*/@覆盖public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);wv=(WebView)findViewById(R.id.webView1);处理程序 = 新处理程序();wv.getSettings().setJavaScriptEnabled(true);wv.getSettings().setBuiltInZoomControls(true);wv.addJavascriptInterface(this, "contactSupport");wv.getSettings().setSupportZoom(true);wv.setWebViewClient(new Callback());//String title=wv.getTitle();//Log.e("nitin", "msg"+title);设置主题(颜色.青色);//wv.setInitialScale(100);wv.loadUrl("file:///android_asset/style.html");}无效加载时间(){String TESTSTRING = "'<div style='color:blue; border:1px solid red;'>YO!</div>'";//TODO 自动生成的方法存根Log.e("mitiiiiiii", ""+TESTSTRING);wv.loadUrl("javascript:appendText("+TESTSTRING+")");}私有类回调扩展了 WebViewClient {public boolean shouldOverrideUrlLoading(WebView view, String url) {返回(真);}@覆盖public void onPageFinished(WebView view, String url) {加载时间();super.onPageFinished(view, url);}}public String deleteContact(final String contactId){Toast.makeText(getBaseContext(),contactId ,Toast.LENGTH_LONG).show();handler.post(new Runnable() {公共无效运行(){Toast.makeText(getBaseContext(),contactId ,Toast.LENGTH_LONG).show();}});Log.i("nitin",""+contactId);返回http://google.com";}}

以下是我的javascript代码

<头><script type="text/javascript">var extraStr;函数 appendText(extraStr) {document.getElementById('question')[0].innerHTML = document.getElementById('question')[0].innerHTML + extraStr;contactSupport.deleteContact();}函数 getUsed(){var 总计 = "";$(".boxWord.boxWordUsed").each(function (i){ total = total + this.getAttribute('index_no') + ":"; });总回报;}<link href="style.css" media="all" rel="stylesheet" type="text/css"/><身体><div id="question" class='question' >

谁能告诉我为什么它不起作用

提前致谢.

解决方案

Appending to HTML (concatenation) as String Joining 不是一个好的解决方案,但您可以尝试这种方法,这将确保 html 文档的神圣性不被破坏.由于您有 HTML 文档,这意味着您可以控制该文档,因此您应该能够执行我在下面提到的操作.

1) 在 HTML 中创建一个函数

 函数 appendText(extraStr) {document.getElementsByTagName('body')[0].innerHTML = document.getElementsByTagName('body')[0].innerHTML + extraStr;}

2) 在 WebView 加载时调用这个函数

 myWebView.loadUrl("javascript:appendText('额外的文本或 html 在这里')");

3) 不要忘记添加这个

 myWebView.getSettings().setJavaScriptEnabled(true);

I am Developing an application.In which i am appending a text to existing text which is stored in .html file, the location for the .html file is in my application's "assets" folder. I know how to load html with URL but my problem is to append the text. following is my java code

public class LoadWeb extends Activity {
    WebView wv;
    private Handler handler = null;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        wv=(WebView)findViewById(R.id.webView1);
        handler = new Handler();  
        wv.getSettings().setJavaScriptEnabled(true);
        wv.getSettings().setBuiltInZoomControls(true);
        wv.addJavascriptInterface(this, "contactSupport");
        wv.getSettings().setSupportZoom(true);
        wv.setWebViewClient(new Callback());
       // String title=wv.getTitle();
    // Log.e("nitin", "msg"+title);


        setTheme(Color.CYAN);
       // wv.setInitialScale(100);




        wv.loadUrl("file:///android_asset/style.html");


        }
    void loadTime() {
        String TESTSTRING = "'<div style='color:blue; border:1px solid red;'>YO!</div>'"; 
        // TODO Auto-generated method stub
        Log.e("mitiiiiiii", ""+TESTSTRING);
        wv.loadUrl("javascript:appendText("+TESTSTRING+")"); 

    }


    private class Callback extends WebViewClient {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {


            return(true);

        }

        @Override
        public void onPageFinished(WebView view, String url) {
            loadTime();
            super.onPageFinished(view, url);
        }

    }
    public String deleteContact(final String contactId){  
        Toast.makeText(getBaseContext(),contactId ,Toast.LENGTH_LONG).show();
         handler.post(new Runnable() {  
              public void run() {  
                  Toast.makeText(getBaseContext(),contactId ,Toast.LENGTH_LONG).show();
              }  
            }); 

        Log.i("nitin"      ,""+contactId);
        return "http://google.com";
    }

}

and following is my javascript code

<html>
<head>
<script type="text/javascript">
var extraStr;
function appendText(extraStr) {

     document.getElementById('question')[0].innerHTML = document.getElementById('question')[0].innerHTML + extraStr;
     contactSupport.deleteContact();
 }  

function getUsed()
{
    var total = "";
    $(".boxWord.boxWordUsed").each(function (i){ total = total + this.getAttribute('index_no') + ":"; });
    return total;
}


</script>
<link href="style.css" media="all" rel="stylesheet" type="text/css" /> 
</head>
<body>
<div id="question" class='question' >
</div>

Can any body tell me why it is not working

Thanks in advance.

解决方案

Appending to HTML (concatenation) as String joining is not a good solution, but you can try this approach which will ensure that the html document's sanctity is not broken. Since you have the HTML document with you, it signifies you have control over that document and hence you should be able to do this which I am mentioning below.

1) Create a function in HTML

 function appendText(extraStr) {
     document.getElementsByTagName('body')[0].innerHTML =     document.getElementsByTagName('body')[0].innerHTML + extraStr;
 }  

2) On WebView load call this function

 myWebView.loadUrl("javascript:appendText('extra text or html here')"); 

3) Don't forget to add this

 myWebView.getSettings().setJavaScriptEnabled(true);

这篇关于如何在android中使用现有的html内容附加附加文本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆