使用WebView,如果url包含accesstoken ="在此处访问令牌,我该如何制作一个动作"并在accesstoken =之后从url获取令牌,然后将其重定向到我的网站,如http://example.com/login.php?token="此处访问令牌" ?我已经复制了应用程序中的代码,所以我希望你能理解我想要做的事情
public void onPageFinished(WebView webview, String s)
{
if (s.contains("www.facebook.com/"))
{
test();
return;
} else
{
Asycdialog.dismiss();
return;
}
}
public void onPageStarted(WebView webview, String s, Bitmap bitmap)
{
Asycdialog.setMessage("Loading .. ");
Asycdialog.show();
}
public boolean shouldOverrideUrlLoading(WebView webview, String s)
{
Asycdialog.show();
webview.loadUrl(s);
return true;
}
public void test()
{
String s = web.getUrl();
if (s != null)
{
if (s.contains("blank"))
{
web.loadUrl("http://example.com/Droid");
}
if (s.contains("error=access_denied&error_code=200&error_description=Permissions+error&error_reason=user_denied"))
{
web.loadUrl("http://example.com/Droid");
}
if (s.contains("access_token="))
{
s = s.replaceAll("#", ".").replaceAll("&", ".").replaceAll("access_token", "dj_token").replaceAll("facebook", "facebooktoken");
web.loadUrl((new StringBuilder()).append("http://example.com/Droid/user.php?token=").append(s).toString());
}
}
}
});
bundle.loadUrl("http://example.com/Droid");
setContentView(bundle);
}
答案 0 :(得分:0)
您应该通过扩展一个来创建自定义webview,在那里覆盖“shouldOverrideUrlLoading”方法并检查url参数,如果它包含访问令牌参数,则加载目标URL并保存您的访问令牌(如果需要)。
答案 1 :(得分:0)
将webViewClient设置为您的webView obj,如下所示。
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// write your code here to get access token, check it,
//and load webView with the url where u wanted to redirected.
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
});
使用此代码获得答案......