Unfortunately the Javascript doesn't appear to work, since on reloading the HTML page, all stored information will be lost.
Since almost 1.5 month passed since the last answer, here is the way which is not 100% proof, but quite acceptable: save the relative scrolling position as a fraction to the total height:
private float relPosition;
@Override
public void onCreate(Bundle savedState) {
........
relPosition = savedInstanceState.getFloat("WebViewPos");
.......
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putFloat("WebViewPos", (float) webView.getScrollY() / webView.getContextHeight();
}
/* After the page has been loaded */
webView.setScrollY((int)(relPosition * webView.getContextHeight()));
As a matter of fact, I haven't got a chance to try it (just changed the design) :)