繁体   English   中英

在当前的webview中打开弹出/外部站点链接

[英]Open pop up/external site link in current webview

我目前正在写一个Webview,它首先加载一个Twitter页面(例如NHL, http://twitter.com/nhl ),如您所见,您可以找到NHL的推文,每个NHL推文都有一个供用户使用的链接。单击,例如,bit.ly / ujcNZo

在我的Web视图中,如果我单击该链接(即bit.ly/ujcNZo),则1秒钟后,我的Web视图除了在白色背景上显示一个Twitter图标外,什么都没有显示,它应该加载内容,但没有。

经过一段时间的调查,我认为这与以下事实有关:推文中的链接(即bit.ly/ujcNZo)实际上是在单独的窗口中打开链接(弹出窗口),而不是当前页面所在的链接发布后,我通过在笔记本电脑的浏览器中转到NHL的Twitter页面来验证了这一点。

我的问题是:1.有没有办法可以在当前Web视图中加载外部链接的内容(例如,bit.ly / ujcNZo)?

您可以通过WebViewClient类进行控制。 只需扩展它并覆盖默认实现即可获得所需的配置,然后将其设置为当前Webview的客户端。

活动

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

            // set the webViewClient to a new instance of your custom WebViewClient

    webview.setWebViewClient(new WebActivityClient( this ));

}

定制客户

/** WebViewClient class for WebView in WebActivity */
private class WebActivityClient extends WebViewClient {

    public static final String TAG = "WebActivityClient";
    private Context context;

    /** Constructor used to grab the context */
    public WebActivityClient( Context context ) {
        this.context = context;
    }

    /** Override to load every link within the page inside this webview instead of using
     * android's default application
     * #7 http://developer.android.com/resources/tutorials/views/hello-webview.html */
    @Override
    public boolean shouldOverrideUrlLoading( WebView view, String url ) {
        view.loadUrl(url);
        return true;
    }

}

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM