android - 如何在 Android 应用程序中嵌入 HTML 代码?

标签 android android-layout

我正在编写一个需要在 Android 应用程序中嵌入 HTML 对象的应用程序,我按照此处给出的教程进行操作:http://mobile.tutsplus.com/tutorials/android/android-sdk-embed-a-webview-with-the-webkit-engine/并相应地修改了代码,下面是代码,但是我得到一个白屏...

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        WebView engine = (WebView) findViewById(R.id.web_engine);

    engine.getSettings().setJavaScriptEnabled(true);
    engine.getSettings().setPluginsEnabled(true); 
    engine.getSettings().setAppCacheEnabled(false); 
    engine.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 

        String data = "<html>" +
                "<body>" +
                "bb"+
                "<object width=\"450\" height=\"300\" align=\"middle\"><param name=\"movie\" value=\"http://www.raaga.com/widgets/top10/widgettopten.swf?l=H&q=1\" /><param name=\"wmode\" value=\"transparent\"><embed src=\"http://www.raaga.com/widgets/top10/widgettopten.swf?l=H&q=1\" width=\"450\" height=\"300\" align=\"middle\" type=\"application/x-shockwave-flash\" wmode=\"transparent\"  FlashVars=\"gig_lt=1312323434023&gig_pt=1312325057958&gig_g=2\"/> <param name=\"FlashVars\" value=\"gig_lt=1312323434023&gig_pt=1312325057958&gig_g=2\" /></object>"+
                "gg"+
                "</body>" +
                "</html>";

        engine.loadData(data, "text/html", "UTF-8");
    }
}

我要嵌入的对象是:

<object width="450" height="300" align="middle"><param name="movie" value="http://www.raaga.com/widgets/top10/widgettopten.swf?l=H&q=1" /><param name="wmode" value="transparent"><embed src="http://www.raaga.com/widgets/top10/widgettopten.swf?l=H&q=1" width="450" height="300" align="middle" type="application/x-shockwave-flash" wmode="transparent"  FlashVars="gig_lt=1312323434023&gig_pt=1312326303531&gig_g=2"/> <param name="FlashVars" value="gig_lt=1312323434023&gig_pt=1312326303531&gig_g=2" /></object>

最佳答案

将文件放在/assets目录下,可以通过file:///android_asset/目录访问。

您可以在 Assets 文件夹中放置静态数据文件,例如 HTML 及其相关的 CSS、图像和 JavaScript 文件等,而不是将 html 放在代码中。然后您可以使用 WebView.loadUrl() .这样做的好处是不必在代码中使用 Java String 转义和繁琐的编辑。您将能够在您最喜欢的 Web 项目编辑器中单独创建文件,然后复制并粘贴它们。如果您需要在运行时编辑文件,您仍然可以从 Assets 目录加载文件,并且仍然不必担心 Java String 转义和繁琐的编辑。然后应用编辑并传递给 WebView.loadData() .

为了帮助调试这个问题,请执行 WebChromeClient.onLoadResource并查看 console message tutorial .

不要忘记使用 PackageManager.getPackageInfo()检查闪存是否可用。如果不是,您可以为用户提供 download it from the market 的选项。 .

关于android - 如何在 Android 应用程序中嵌入 HTML 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6919800/

相关文章:

java - 谷歌地图与安卓

android - 使用Maven apklib时出现编译错误

android - 如何从 SD 卡加载我的 pdf 文件

android - 我的 AsyncTask 没有被取消 android

java - 创建部分覆盖父级的 Activity 的最佳方法

android - 如何在 LinearLayout 中对齐单选按钮中心

android - 单击 2 秒后禁用按钮并恢复

java - 如何使 TextInputLayout 的 float 标签加粗

Android admob 显示 adview 缺少必需的 XML 属性 'adSize'

java - WindowManager addView() 不尊重 MATCH_PARENT