此代码加载不是本地的网页工作正常,但当我放置本地文件时出现错误:找不到文件。 我正在使用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文件夹中看到它 如何在浏览器中显示该网页? 感谢
答案 0 :(得分:1)
这里有几个问题。
首先,设备的根目录中没有/android_asset
目录,更不用说iCD_credits_it.html
个文件了。
其次,您的setClassName()
会导致此代码在许多设备上崩溃。 不要对软件包和类名进行硬编码,除非您只打算在自己的设备上运行应用程序。
第三,文件是“在资源文件夹中”,还是“在资源文件夹中”,或者您有两个文件副本。资源和资产虽然相似,但并不是一回事。
第四,您很难找到能够从项目的资源或资产中读取文件的浏览器。资产根本不可能;找到一个可以从原始资源中读取HTML的浏览器只是不太可能。
或者:
使用WebView
并自行显示,或
编写您自己的ContentProvider
以便从您项目的assets/
中提供HTML,或者
请尝试my StreamProvider
获取可以提供项目ContentProvider
内文件的“预制”assets/
,或
将文件复制到外部存储空间(例如getExternalFilesDir()
)并尝试让浏览器从那里加载
只保证第一个有效。其他因素将根据用户可以使用的浏览器功能而有所不同。