【问题标题】:Changing the Android Webview hash without reloading page在不重新加载页面的情况下更改 Android Webview 哈希
【发布时间】:2010-05-05 16:10:07
【问题描述】:

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

1、在webview不重新加载页面的情况下更改url hash(它会丢失我的js应用的状态)

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

任何人都可以想出一种方法来做这两种方法吗?

提前致谢。

M

【问题讨论】:

    标签: javascript android hash webview


    【解决方案1】:

    或者如果你只是想改变哈希,你可以使用:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        我知道这个问题很老,但这是在 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);
             }
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-10-04
          • 1970-01-01
          • 2013-07-07
          • 1970-01-01
          • 2020-04-20
          • 2016-10-28
          相关资源
          最近更新 更多