我有一个简单的Android屏幕,其中包含一个按钮,如下所示
我还在android studio上的webpage
文件夹中存储了一个名为webpage.html
的本地assets
。
点击Android屏幕上的button
时,我想打开我存储的本地网页。如果我尝试打开http://www.google.com
,它就可以了。但是现在打开任何本地页面似乎都有问题。以下是我的MainActivity.java
代码段 -
//click this button to open a web page
public void onOpenWebBrowser(View v)
{
Intent webPageIntent = new Intent(Intent.ACTION_VIEW);
webPageIntent.setData(Uri.parse("/Users/user/AndroidStudioProjects/ProjectName/app/src/main/assets/webpage.html"));
try {
startActivity(webPageIntent);
} catch (ActivityNotFoundException ex) {
// can do something about the exception.
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
以下是我的activity_main.xml
文件的内容 -
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:onClick="onOpenWebBrowser"
android:text="Open Web Browser" />
</RelativeLayout>
P.S - 如果我在浏览器中从外面打开它,网页就可以正常工作。请帮忙!
答案 0 :(得分:0)
首先在activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onOpenWebBrowser"
android:text="Open Web Browser" />
<WebView
android:id="@+id/web_view"
android:layout_below="@+id/button"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
现在在MainActivity.java
WebView webView = (WebView)findViewById(R.id.web_view);
webView.loadUrl("file:///android_asset/filename.html");
这会有效!
希望这有帮助!
答案 1 :(得分:0)
你可以在意图的地方试试: -
WebView wb = new WebView(this);
wb.loadUrl("file:///android_asset/index.htm");
setContentView(wb);
将此虚拟网址路径替换为您的文件路径。
希望它可以帮到你。 :)
答案 2 :(得分:0)
您可以在文字视图中显示HTML,但仅当您只进行基本的HTML标记时,这才有效:
try
{
InputStream inputStream = getResources().getAssets().open("myFile.html");
String html = IOUtils.toString(inputStream);
myTextView.setText(Html.fromHtml(html));
}
catch (IOException exception)
{
myTextView.setText("Failed loading html.");
}