package com.android.caigang.view;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.android.caigang.R;
import com.mime.qweibo.OAuth;
import com.mime.qweibo.examples.MyWeiboSync;
public class AuthorizeActivity extends Activity {
private static final String TAG = "AuthorizeActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
WebView webView = (WebView) findViewById(R.id.web);
webView.setWebViewClient(new MyWebViewClient());
Intent intent = this.getIntent();
if (!intent.equals(null)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
if (bundle.containsKey("url")) {
String url = bundle.getString("url");
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(true);
webView.requestFocus();
webView.loadUrl(url);
}
}
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
WebView webView = (WebView) findViewById(R.id.web);
if (webView.canGoBack()) {
webView.goBack();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Pattern p = Pattern.compile("^" + MyWeiboSync.CALLBACK_URL
+ ".*oauth_verifier=(\\d+)");
Matcher m = p.matcher(url);
if (m.find()) {
Intent intent = new Intent();
intent.setAction("com.weibo.caigang.getverifier");
String veryfier = m.group(1);
intent.putExtra("veryfier", veryfier);
sendBroadcast(intent);
finish();
}
}
}
}