Java 在普通浏览器中打开Android Webview中的链接作为弹出窗口

Java 在普通浏览器中打开Android Webview中的链接作为弹出窗口,java,javascript,android,webview,Java,Javascript,Android,Webview,我有一个简单的网页视图,可以加载一个页面。此页面有几个在webview中打开的链接。这就是它应该做的,所以它工作得很好 但是该页面中只有一个链接应该作为弹出窗口加载,所以我希望当人们单击它时,它能在普通浏览器中打开。但正如我所说的,所有链接都在webview中打开,因此该链接也会打开 我的问题是,如何在普通浏览器中将此链接作为弹出窗口打开?有可能吗?链接是可变的,因此它总是在更改,不能在应用程序中硬编码以在新浏览器中打开 有可能吗?我该怎么做?下面是一个覆盖webview加载以保持在webvie

我有一个简单的网页视图,可以加载一个页面。此页面有几个在webview中打开的链接。这就是它应该做的,所以它工作得很好

但是该页面中只有一个链接应该作为弹出窗口加载,所以我希望当人们单击它时,它能在普通浏览器中打开。但正如我所说的,所有链接都在webview中打开,因此该链接也会打开

我的问题是,如何在普通浏览器中将此链接作为弹出窗口打开?有可能吗?链接是可变的,因此它总是在更改,不能在应用程序中硬编码以在新浏览器中打开


有可能吗?我该怎么做?

下面是一个覆盖webview加载以保持在webview内或离开的示例:

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class TestWebViewActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        WebView webView = (WebView) findViewById(R.id.webview);
        webView.setWebViewClient(new MyWebViewClient());
    }
}


class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(url.contains("somePartOfYourUniqueUrl")){ // Could be cleverer and use a regex
            return super.shouldOverrideUrlLoading(view, url); // Leave webview and use browser
        } else {
            view.loadUrl(url); // Stay within this webview and load url
            return true;
        }
    }
}

使用意图;请看:我知道你说你不能硬编码它,但是链接有什么变化?当然有些东西是编码的,你可以依赖?然后,只需覆盖onURL加载并将该url传递给超级用户,但要处理其他url。如果需要,我可以给你举个例子?@user1031312哈哈,当然不,我不笨!谢谢你的回答,我明天再看@Blundell这是一个在facebook等网站上共享我的应用程序的链接,但每个链接都有自己的id,让我感觉该应用程序被共享了多少次。这很难解释,但它不是广告等,用户可以自由点击或不点击。如果你有时间,我想看一个例子!非常感谢。改为做一个HttpRequest来实现这一点。将一些用户数据绑定到php页面的请求中,然后php页面可以将信息存储到数据库中。我会给你发一个Android Side的例子非常感谢!我想这正是我想要的。我明天会测试这个,首先我得睡一会儿,因为现在是凌晨1点15分;)是的,我也是,瘾君子:哈哈。是的,所以你可以把“share.php”放在那个contains if语句中。小心别让其他人用它,另一个答案已经过时了。这个很有效。
public class WebViewActivity extends Activity {

    private WebView webView;
    private ProgressDialog progress;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        WebView myWebView = (WebView) findViewById(R.id.webView1);
        myWebView.setWebViewClient(new MyWebViewClient());
        myWebView.loadUrl("https://www.example.com");
    }

    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (Uri.parse(url).getHost().equals("https://www.example.com")) {
                // This is my web site, so do not override; let my WebView load the page
                return false;
            }
            // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);
            return true;
        }
    }
}