【问题标题】:Android webview get current url and check if it contains a stringAndroid webview获取当前url并检查它是否包含字符串
【发布时间】:2017-02-22 16:28:11
【问题描述】:

上一篇文章来自这里android studio webview get data and onfinish。我实际上无法从这些答案中得到我想要的。也许我应该问得更清楚一些。我实际上使用 webview 来加载内容页面。然后在内容页面里面,有一些链接也是我自己创建的本地html。所以流程就像

android 活动 -> webview -> 内容页面 -> 游戏页面。

我实际上想在游戏页面中检索一个局部变量marks。所以我创建了一个exit 按钮,用于关闭页面并返回android 活动,以及将marks 带回android 活动。

于是我自己查了一些资料,发现window.close()不行。所以我更改了当前的 URL 以指示单击了退出按钮。然后从 URL 中提取 marks 并将其存储在 android 活动中。但它不适用于我下面的代码,我认为这可能是因为当我在内容页面时使用了该方法。我希望有人可以帮助做到这一点,因为我真的找不到问题。我已将代码编辑如下:

我在 android 中的活动:

private WebView webview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //setContentView(R.layout.activity_main);

    webview = new WebView(this);
    webview.getSettings().setJavaScriptEnabled(true);

    try {            
        webview.loadUrl("file:///android_asset/index.html");
        webview.setWebViewClient(new WebViewClient()

        @Override 
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
           if (url.contains("?marks=")){
             finish();}  // close activity
           else{
             view.loadUrl(url);}

           return true; 
        });
    }
    catch(Exception ex)
    {
        ex.printStackTrace();
    }
    setContentView(webview);
}

我的退出按钮是一个 div:

<div class="exit" onclick="finish()">Exit</div>

我将使用finish()函数返回变量并关闭网页回到android中的活动。

function finish() {
  document.location.href= window.location.href +"?marks=" + marks;
}

【问题讨论】:

    标签: javascript android html webview


    【解决方案1】:

    好的,我认为问题已经解决,因为webview.loadUrl 应该放在最后。 webview.setWebViewClient(new WebViewClient()

        webview.setWebViewClient(new WebViewClient()
    
        @Override 
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
           if (url.contains("?marks=")){
             finish();}  // close activity
           else{
             view.loadUrl(url);}
    
           return true; 
        });
    
        webview.loadUrl("file:///android_asset/index.html");
    

    【讨论】:

      猜你喜欢
      • 2014-07-04
      • 2015-08-12
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      • 2011-05-08
      相关资源
      最近更新 更多