微信登陆
@JavascriptInterface
public void wxloginapp(String name) {
UMShareAPI.get(context).getPlatformInfo(context, SHARE_MEDIA.WEIXIN, authListener);
}
QQ登录
@JavascriptInterface
public void qqloginapp(String name) {
UMShareAPI.get(context).getPlatformInfo(context, SHARE_MEDIA.QQ, authListener);
}
获取数据,成功,失败
private UMAuthListener authListener = new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA platform) {
SocializeUtils.safeShowDialog(dialog);
}
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
SocializeUtils.safeCloseDialog(dialog);
if (platform==SHARE_MEDIA.QQ){
Log.d("asd",data.toString());
// webView.loadUrl("javascript:qqloginappdo('" + data.toString() + "')");
try {
JSONObject jsonObject = new JSONObject(data);
final JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("uid", jsonObject.getString("uid"));
jsonObject2.put("name", jsonObject.getString("name"));
jsonObject2.put("iconurl", jsonObject.getString("iconurl"));
jsonObject2.put("gender", jsonObject.getString("gender"));
context.runOnUiThread(new Runnable() {
@Override
public void run() {
webView.loadUrl("javascript:qqloginappdo('" + jsonObject2.toString() + "')");
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}else {
Log.d("asd",data.toString());
// webView.loadUrl("javascript:wxloginappdo('" + data.toString() + "')");
try {
JSONObject jsonObject = new JSONObject(data);
final JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("uid", jsonObject.getString("uid"));
jsonObject2.put("name", jsonObject.getString("name"));
jsonObject2.put("iconurl", jsonObject.getString("iconurl"));
jsonObject2.put("gender", jsonObject.getString("gender"));
context.runOnUiThread(new Runnable() {
@Override
public void run() {
webView.loadUrl("javascript:wxloginappdo('" + jsonObject2.toString() + "')");
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
}
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
SocializeUtils.safeCloseDialog(dialog);
}
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
SocializeUtils.safeCloseDialog(dialog);
}
};
到这我已经把结果回调给H5了。