HTML 数据在 Android 中从 json webservice 获取的 Webview 中无法正确显示?

2024-03-03

我正在使用 json webservice 从服务器获取 HTML 数据并在 webview 中显示 在 iPhone 中可以完美显示屏幕尺寸,但在 Android 中则不能完美显示 这里我放下了webservice链接和代码以及android和iphone的屏幕截图。

HomeActivity.java

public class HomeActivity extends Activity 
{   
     WebView webview;   

     ImageView imagemenu;    


@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    imagemenu=(ImageView)findViewById(R.id.imagemenu);
    copyFile(HomeActivity.this,"verdana.ttf");
    new HomeAsynctask().execute("");
    webview = (WebView) findViewById(R.id.homewebview);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setLoadWithOverviewMode(true);
    webview.getSettings().setUseWideViewPort(true);
    webview.getSettings().setBuiltInZoomControls(true);
    webview.getSettings().setSupportZoom(true);


    imagemenu.setOnClickListener(new OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {

            Intent i = new Intent(HomeActivity.this,HomeListActivity.class);
            i.setFlags(i.FLAG_ACTIVITY_NO_ANIMATION);
            startActivity(i);

        }

    });

}


// Asynctask for getting the home data from url
public class HomeAsynctask extends AsyncTask<String, String,String>
{
    String detail;

    @Override
    protected void onPreExecute() 
    {   
           // loader    

    }

    @Override
    protected String doInBackground(String... params) 
    {
        try 
        {
            JsonParser jparser = new JsonParser();              
            String url="http://www.bridge.co.at/webservices/services.php?method=content&uid=127";               
            String homedata=jparser.getdata(url);

            Log.e("Home Data","----->"+homedata);

            JSONObject jobject = new JSONObject(homedata);
            JSONArray jarray =jobject.getJSONArray(ClassVariable.HOME.CONTENT);

            detail=jarray.getJSONObject(0).get(ClassVariable.HOME.DETAIL).toString();

            Log.e("Detail","----->"+detail);

        } 
        catch (Exception e) 
        {
            e.printStackTrace();
        }

        return detail;
    }

    @Override
    protected void onPostExecute(String result) 
    {   
        String htmlData=getHtmlData(HomeActivity.this,result);
        webview.loadDataWithBaseURL(null,htmlData,"text/html","utf-8","about:blank");
    }



}

private boolean copyFile(Context context,String fileName) 
{
    boolean status = false;        
    try 
    { 
        FileOutputStream out = context.openFileOutput(fileName, Context.MODE_PRIVATE);
        InputStream in = context.getAssets().open(fileName);
        // Transfer bytes from the input file to the output file
        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
        // Close the streams
        out.close();
        in.close();
        status = true;
    } 
    catch (Exception e) 
    {
        System.out.println("Exception in copyFile:: "+e.getMessage());
        status = false;
    }

    System.out.println("copyFile Status:: "+status);

    return status;

}

private String getHtmlData(Context context, String data)
{

    String head = "<head><style>@font-face {font-family: 'verdana';src: url('file:///android_asset/fonts/verdana.ttf');}body {width=600;height=1024;margin:10px;font-family:'verdana';font-size:12px}</style></head>";
    String htmlData= "<html>"+head+"<body>"+data+"</body></html>" ;

    return htmlData;
}

}


您是否尝试过使用 Html.fromHtml(yourData) ?这里也给出了一些相关的答案。从 XML 中的 html 格式字符串资源设置 TextView 文本 https://stackoverflow.com/questions/3235131/set-textview-text-from-html-formatted-string-resource-in-xml.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML 数据在 Android 中从 json webservice 获取的 Webview 中无法正确显示? 的相关文章

随机推荐

  • 在本机反应中打开联系人应用程序

    我正在制作一个反应本机应用程序 在一个屏幕上有一个表单 用户必须在其中填写用户必须填写他的手机号码的表单 因此我正在制作一个按钮 该按钮将打开用户手机的联系人应用程序 用户可以从该列表中选择联系人号码 该号码将被填充到该字段中 我找到了这个
  • 在 Wagtail 中实现文章和页面模型之间的一对多

    我正在尝试设置一个带有文章到页面结构的 Wagtail 网站 但我很挣扎 例如 一篇评论文章可能有一个介绍页面 一个基准页面和一个结论页面 我想弄清楚如何在 wagtail 中允许这种关系并拥有它 以便编辑可以将多个页面添加到同一页面上的同
  • 为什么每次新编辑或输入内容时,我的 JupyterLab 单元格都会变成橙色?

    我最近在我经常工作的 conda 环境中的 anaconda 扩展中通过 jupyterlab scheduler 安装了 Cron 这是为了安排我的 jupyterlab 笔记本 然而 该应用程序出现了问题 所以我将其删除 尽管它似乎保留
  • Crashlytics/Firebase 中的搜索选项可以在其中按崩溃名称进行搜索?

    Crashlytics Firebase 中是否有搜索选项 我可以在其中按崩溃名称进行搜索 例如 java lang IllegalStateException 预期为 BEGIN ARRAY 但在第 1 行第 3 列为 STRING 现在
  • Javascript 拼接在 jQuery .each() 上中断?

    var results one two one hundred three var removal each results function i removal push i if results i indexOf one 1 cons
  • C++:与通用 const 指针作斗争

    我在一些模板化代码中遇到了一些关于 const 正确性的恼人问题 这些问题最终归结为以下观察结果 由于某种原因 给定一个类似 STL 的容器类型 T const typename T pointer实际上似乎并没有产生常量指针类型 即使T
  • 如何强制 FileSystemWatcher 等待文件下载?

    我正在下载一个文件 并且只想在下载完成后才执行安装 我该如何实现这个目标 似乎 FileSystemWatcher onCreate 事件会执行此操作 但这发生在不同的线程中 是否有一种简单的方法可以强制等待部分发生在同一线程中 到目前为止
  • python中的Timeit模块无法正确运行

    我正在尝试使用 python 的 timeit 模块 似乎 timeit 源代码中存在错误 尽管这似乎不正确 这是正在运行的代码片段 def recordCuckoo amtElements loadFactor Determines th
  • IEEE 754:为什么谓词 == 和 != 没有发出信号?

    注意 了解IEEE 754 请耐心等待 IEEE 754 2008 表 5 2 列出了五个无序信号谓词及其否定 当关系无序时 它们会导致无效操作异常 该无效操作异常可以防止使用以下代码编写的程序中出现意外的安静 NaN 标准谓词 gt 及其
  • MongoDB Atlas 和适用于 AWS 的 MongoDB Atlas 有什么区别

    在调查物联网数据存储的兼容数据库期间 我研究了 MongoDB 发现定价有点令人困惑 只是想知道有什么区别MongoDB 阿特拉斯 https www mongodb com cloud atlas pricing and 适用于 AWS
  • 提供大型 CSS 文件

    我有一个大约 50k 的大型压缩 CSS 文件 大约有 30 个页面引用了该文件 将 CSS 分离到一个基本文件中 每个页面都有单独的 CSS 文件会显着减少加载时间 还是提供一个大文件实际上是相同的 谢谢 我不完全确定你的意思 但是提供一
  • iOS 中的裁剪区域与选定区域不同?

    这是github上的链接https github com spennyf cropVid tree master https github com spennyf cropVid tree master您自己尝试一下 看看我在说什么 测试需
  • 连续改变 UISlider 拇指图像上 UILabel 的值

    我有一个UISlider 最少 1 个 最多 10 个 我希望它的拇指有一个UILabel放置在它的顶部 在移动时不断更新和更改其文本UISlider的拇指 所以 我从UISlider并添加了一个UILabel但一旦拇指移动 标签似乎会覆盖
  • Cuda C++ 设备代码中没有元组吗?

    global void addKernel int c const int a const int b int i threadIdx x auto lamb int x return x 1 Works auto t std make t
  • Keras 中 Conv1d 中的 input_shape 变量如何工作?

    再见 我正在 Keras 上使用 CNN 1d 但我在输入形状变量方面遇到了很多麻烦 我有一个包含 100 个时间步长和 5 个带有布尔标签的特征的时间序列 我想训练一个使用长度为 10 的滑动窗口的 CNN 1d 这是我编写的非常简单的代
  • 如何将按组绘图元素叠加到 ggplot2 方面?

    我的问题与分面有关 在下面的示例代码中 我查看了一些分面散点图 然后尝试在每个方面覆盖信息 在本例中为平均线 tl dr 版本是我的尝试失败了 要么我添加的平均线计算所有数据 不尊重方面变量 要么我尝试编写一个公式 但 R 抛出错误 然后是
  • 传递带有自定义数据属性的函数

    是否可以传递具有自定义数据属性的函数 这不起作用 div div function hello console log hello 当我获得该属性时 它是一个值为 hello 的字符串而不是函数 怎么解决这个问题呢 你可以这样做 div d
  • 是否可以在 git-extensions 中为特定文件扩展名设置 diff/merge-tool ?

    我刚刚开始使用 LabView 进行开发 这对我来说是全新的 我想使用 git 扩展来处理我的版本控制 由于源位于 vi格式 我无法使用普通的 diff 工具 源是二进制的 幸运的是 LabView 附带了专用的差异和合并工具 这似乎非常有
  • 关于真实的表示可以假设什么?

    该程序返回0在我的机器上 include
  • HTML 数据在 Android 中从 json webservice 获取的 Webview 中无法正确显示?

    我正在使用 json webservice 从服务器获取 HTML 数据并在 webview 中显示 在 iPhone 中可以完美显示屏幕尺寸 但在 Android 中则不能完美显示 这里我放下了webservice链接和代码以及andro