Android加载本地html文件并在Web浏览器中显示

时间:2013-09-21 20:50:34

标签: android

此代码加载不是本地的网页工作正常,但当我放置本地文件时出现错误:找不到文件。 我正在使用cocos2dx并且在包含Activity的file.java中我有一个函数使得:

File file=new File("/android_asset/iCD_credits_it.html");
Uri uri = Uri.fromFile(file);
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setDataAndType(uri, "text/html");
browserIntent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
//browserIntent.setData(uri);
me.startActivity(browserIntent);

我已将iCD_credits_it放在Resource文件夹中,我可以在eclipse的assets文件夹中看到它 如何在浏览器中显示该网页? 感谢

1 个答案:

答案 0 :(得分:1)

这里有几个问题。

首先,设备的根目录中没有/android_asset目录,更不用说iCD_credits_it.html个文件了。

其次,您的setClassName()会导致此代码在许多设备上崩溃。 不要对软件包和类名进行硬编码,除非您只打算在自己的设备上运行应用程序。

第三,文件是“在资源文件夹中”,还是“在资源文件夹中”,或者您有两个文件副本。资源和资产虽然相似,但并不是一回事。

第四,您很难找到能够从项目的资源或资产中读取文件的浏览器。资产根本不可能;找到一个可以从原始资源中读取HTML的浏览器只是不太可能。

或者:

  • 使用WebView并自行显示,或

  • 编写您自己的ContentProvider以便从您项目的assets/中提供HTML,或者

  • 请尝试my StreamProvider获取可以提供项目ContentProvider内文件的“预制”assets/,或

  • 将文件复制到外部存储空间(例如getExternalFilesDir())并尝试让浏览器从那里加载

只保证第一个有效。其他因素将根据用户可以使用的浏览器功能而有所不同。