在不重新加载页面的情况下更改Android Webview哈希

时间:2010-05-05 16:10:07

标签: javascript android hash webview

我有一个自定义的webview设置工作得很好,但我希望能够:

1,在没有webview重新加载页面的情况下更改url哈希(它将丢失我的js应用程序的状态)

2,从android中调用我网页内的一些js。遗憾的是,我无法更改站点内的任何JS,因此无法自定义编写任何js以放置在网站上,尤其是作业,我唯一能控制的是Android应用程序。

任何人都可以想到这样做的方法吗?

提前致谢。

中号

3 个答案:

答案 0 :(得分:4)

或者,如果您只想更改哈希值,可以使用:

view.loadUrl("javascript:location.hash=\"#" +fragment+"\"");

答案 1 :(得分:1)

对于#2,您的Activity可以调用JavaScript方法。您所要做的就是使用适当的JavaScript调用调用loadUrl方法:

mWebView.loadUrl("javascript:wave()");

自: http://developer.android.com/resources/articles/using-webviews.html

答案 2 :(得分:0)

我知道这个问题已经过时了,但这对我在Android 4.4中起作用了:

String fragment = "#test"
mWebView.evaluateJavascript("location.hash=\"" + fragment + "\";", new ValueCallback<String>() {
     @Override
     public void onReceiveValue(String value) {
         // Yes, I like to log data :-)
         Log.d("MyApp", "onReceiveValue(value): " + value);
     }
});