0

我正在尝试在设备浏览器中加载本地 html 文件。我尝试使用 WebView,但它不适用于所有设备。

//WebView method that didnt work for all devices
WebView w = new WebView(this);
w.getSettings().setJavaScriptEnabled(true);
w.loadUrl("file:///android_asset/my.html");
setContentView(w);

所以我尝试了这种方法,它在 html 查看器中打开文件,但不起作用,因为我尝试加载的 html 需要 javascript

// html view that also doesnt work
Intent i = new Intent();
//i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this is optional
i.setAction(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(myFile), "text/*");
startActivity(i);

我环顾四周至少一天尝试不同的方法,比如添加

i.addCategory(Intent.CATEGORY_BROWSABLE);
i.setClassName("com.android.browser", "com.android.browser.BrowserActivity");

但他们返回错误,如

Unable to start activity android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] typ=text/html }

Unable to start activity android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.browser/com.android.browser.BrowserActivity}; have you declared this activity in your AndroidManifest.xml?

对我来说最好的方法是直接从 assets 文件夹加载 html,我知道使用 WebView 非常简单,但就像我说的那样,它不适用于 Galaxy Nexus 和 Nexus 7 等设备,它确实可以工作适用于 kindle fire 和 kindle hd 等设备。

但目前我使用的方法是将其从资产文件夹保存到外部存储并从那里检索文件以通过意图加载,由于 javascript 问题,这不起作用。有什么建议么?谢谢

4

1 回答 1

0

您是否尝试过这些选项?

w.getSettings().setPluginsEnabled(true);
w.getSettings().setAllowFileAccess(true);
于 2013-07-03T18:09:21.970 回答