我正在使用第三方网站进行身份验证,该网站应该使用身份验证令牌(OAUTH)重定向回我的应用。
如果我通过
在单独的浏览器进程中打开第三方网站,我的回调正常this.startActivity(new Intent(Intent.ACTION_VIEW, uri));
但是,如果我在我的布局中嵌入了一个WebView组件,并打开其中的url,则回调不起作用。 Webview说“你没有权限打开myapp:// callback?token = ....”并迅速刷新为“网页不可用......暂时下来......等等等等”
有什么想法吗?
答案 0 :(得分:17)
您需要实现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)”以检查该网址是否为您的自定义网址,并根据需要进行处理。