2010-09-17 76 views
5

我正在对第三方网站进行身份验证,该网站应该使用身份验证令牌(OAUTH)将其重定向回我的应用。Android:使用WebView组件进行回调?

我有回调正常工作,如果我通过

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

打开一个单独的浏览器进程的第三方网站,但如果我嵌入我的布局网页视图组件,然后在打开的URL中,回调不起作用。 Webview说:“您没有权限打开myapp://回拨?令牌= ....”并快速刷新为“网页不可用...暂时关闭......等等等等”

任何想法?

回答

16

您需要实施WebViewClient以在加载之前拦截自定义URI。 The Hello, WebView tutorial显示了一个简单的例子。他们有:

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

可以更改“view.loadUrl(URL)”,以检查URL是您的自定义URL和处理它不过你想要的。