Android:使用WebView组件的回调?

5

我正在使用第三方网站进行身份验证,该网站应该使用授权令牌(OAUTH)将重定向返回到我的应用程序。

如果我通过单独的浏览器进程打开第三方网站,则回调正常工作。

this.startActivity(new Intent(Intent.ACTION_VIEW, uri));

但是,如果我在布局中嵌入一个WebView组件,并在其中打开URL,则回调不起作用。 WebView显示“您无权打开myapp://callback?token = ....”,并很快刷新为“网页不可用......暂时关闭......blah blah”。有什么想法吗?
1个回答

17

在加载自定义URI之前,您需要实现一个WebViewClient以拦截它。 Hello, WebView教程展示了一个简单的例子。他们有:

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

您可以将“view.loadUrl(url)”更改为检查URL是否为自定义URL并根据需要进行处理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接