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

时间:2011-12-16 21:26:06

标签: java javascript android webview

所以我所拥有的基本上是一个加载页面的简单webview。此页面包含一些在webview中打开的链接。这就是它应该做的,所以一切正常。

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

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

有人可以告诉我是否有可能以及如何做到这一点?非常感谢你!

2 个答案:

答案 0 :(得分:28)

以下是覆盖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;
        }
    }
}

答案 1 :(得分:5)

<input type="text" id="focusone" size="35"></input><br/><br/>
<input type="text" id="focustwo" size="35"></input>