我正在创建一个使用多个本地html文件的应用程序(都位于assets目录中)。当我在文件foo.html中创建锚点并在bar.html中创建指向该锚点的链接,然后在我的Galaxy Nexus上查看它时,我的webview说该网页不可用。
我很确定html已经正确完成了。 w3c HTML5验证器通过它,当我在我的计算机上查看网页时导航正常工作,当使用运行2.2.3而不是Nexus的motorolla机器人时,应用程序正常工作。
当锚点和链接到同一个html文件中时,锚点工作,并且当锚点不包含在链接中时,页面加载得很好(当然,不是在我希望它们位于的位置)。
如果某人有解决方案或采用不同的方法,我很乐意听到。
在我的研究中,我发现Android操作系统中存在一个类似的错误,但它被标记为已发布,所以我怀疑是这样。 http://code.google.com/p/android/issues/detail?id=17535
这里有一个类似的问题,Android Webview Anchor Link (Jump link) not working,但我没有任何滚动视图。
这是我唯一的活动:
package com.me.Foo;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
//import android.webkit.WebViewClient;
import android.widget.Button;
public class Foo extends Activity implements OnClickListener {
WebView browser;
public static final String RDR = "RDR";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button) findViewById(R.id.backButton)).setOnClickListener(this);
((Button) findViewById(R.id.forwardButton)).setOnClickListener(this);
browser = (WebView) findViewById(R.id.webView);
//browser.loadUrl("file:///android_asset/table_of_contents.html");
browser.loadUrl("file:///android_asset/game_parameters.html#2.9");
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.backButton:
Log.d(RDR, "Back button pressed.");
if(browser.canGoBack())
browser.goBack();
break;
case R.id.forwardButton:
Log.d(RDR, "Forward button pressed.");
if(browser.canGoForward())
browser.goForward();
break;
default:
Log.d(RDR, "ERROR! That button click is not handled.");
}
}
}
这是我的xml布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/naviagtionLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/backButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="50"
android:text="@string/backward" />
<Button
android:id="@+id/forwardButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="50"
android:text="@string/forward" />
</LinearLayout>
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_below="@id/naviagtionLayout" />
</RelativeLayout>
感谢。