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

Android 在当前webview中打开弹出/外部站点链接,android,twitter,hyperlink,webview,popup,Android,Twitter,Hyperlink,Webview,Popup,我目前正在写一个webview,它首先加载一个twitter页面(比如, NHL,) 如您所见,您可以找到NHL的推文,每个NHL推文都有 另一个供用户单击的链接,例如bit.ly/ujcNZo 在我的webview中,如果我单击该链接(即bit.ly/ujcNZo),我的webview, 1秒后,在白色屏幕上只显示twitter图标 彩色背景,它应该加载内容,但它没有加载 经过一段时间的调查,我认为这与事实有关 tweet中的链接(即bit.ly/ujcNZo)实际上打开了 链接在单独的窗口(

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

在我的webview中,如果我单击该链接(即bit.ly/ujcNZo),我的webview, 1秒后,在白色屏幕上只显示twitter图标 彩色背景,它应该加载内容,但它没有加载

经过一段时间的调查,我认为这与事实有关 tweet中的链接(即bit.ly/ujcNZo)实际上打开了 链接在单独的窗口(弹出?)中,而不是当前页面中 链接已发布,我通过在一个网站上访问NHL的twitter页面验证了这一点 我的笔记本电脑里有浏览器

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

您可以通过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;
    }

}

希望这有帮助

嗨,杰瑞,谢谢你的回复。但是你的解决方案不起作用。我的代码已经在做您正在做的事情,除了我没有在构造函数中传递上下文之外。事实上,在您的代码中,虽然您正在传递上下文,但您没有在其他任何地方使用它,因此我不确定它的用途。这不是在webview中加载网页,我已经可以做到了。我的问题是在现有webview中加载链接(以弹出窗口形式打开)。进一步测试后,它似乎是任何弹出链接(即,将在单独窗口中打开内容的超链接)不触发shouldOverrideUrlLoading方法…如果打开非弹出链接…它总是触发shouldOverrideUrlLoading方法…我没有提供完整的代码,只是一行代码来说明如何设置WebClient属性和该类的部分实现。我想这会给你指明正确的方向。在帮助你和为你做工作之间有一条细微的界限,呵呵,所以如果你在shouldOverrideUrlLoading上抛出一个断点,它永远不会被调用?如果是这样的话,请提供一个测试URL,我将看到在我的实现中发生了什么。感谢您的回复和测试Jerry,所以基本上在您的webview中,显示此链接,并在实际设备上运行模拟器,尝试单击您在webview上显示的链接(),查看您的webview是否获取该链接并将您重定向到实际源。Thabks!嗨,Jerry,只是你的实现,我已经有了,但这并没有解决我的问题,所以我想知道上下文参数是什么。进一步观察,如果链接是重定向,例如(顺便说一句,这不是什么坏链接,这是来自Twitter的链接,如果你不信任我,可以在NFL的Twitter上随意获得这样的链接),那么就不需要调用shouldOverrideUrlLoading。我的webview也有同样的问题,没有任何答案对我有效。如我所见,您是否已解决此问题自4个月以来没有任何评论没有,先生,很遗憾:/,如果您已解决此问题,请务必通知我。。。