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

Javascript 在不重新加载页面的情况下更改Android Webview哈希,javascript,android,hash,webview,Javascript,Android,Hash,Webview,我有一个自定义的webview设置,它运行得很好,但我希望能够: 1、在webview不重新加载页面的情况下更改url哈希(这将丢失我的js应用程序的状态) 2、从android中调用我网页中的一些js。不幸的是,我无法更改网站内的任何JS,因此无法自定义编写任何JS来放在网站上,特别是为了工作,我唯一能控制的就是Android应用程序 有人能想出一个方法来做这两件事吗 提前谢谢 对于#2,您的活动可以调用JavaScript方法。您只需使用适当的JavaScript调用调用loadUrl方法:

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

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

2、从android中调用我网页中的一些js。不幸的是,我无法更改网站内的任何JS,因此无法自定义编写任何JS来放在网站上,特别是为了工作,我唯一能控制的就是Android应用程序

有人能想出一个方法来做这两件事吗

提前谢谢

对于#2,您的活动可以调用JavaScript方法。您只需使用适当的JavaScript调用调用loadUrl方法:

mWebView.loadUrl("javascript:wave()");
发件人:

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

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

我知道这个问题由来已久,但这是我在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);
     }
});
String fragment=“#测试”
mWebView.evaluateJavascript(“location.hash=\”“+fragment+\”;”,new-ValueCallback(){
@凌驾
公共无效onReceiveValue(字符串值){
//是的,我喜欢记录数据:-)
Log.d(“MyApp”、“onReceiveValue(值):”+值);
}
});