准备的项目与控件
首先在iapp中创建一个项目,创建后点击”可视编程设计”,然后在”可视编程设计”中点击”控件”增加1个按扭控件,2个文本控件,1个图像控件,可以先删掉默认的控件,最后再创建一个名为”qq登陆”的myu界面
写入事件
1.按扭的”单击触屏事件”
fn qq登陆.调用QQ登陆("1107961986","iAppQQLoginDemo","all","com.tencent.mobileqq")
2.”界面事件”的”回调结果事件”
注:此代码部分需要更改
f(st_iT==null)
{
tw("登录取消")
}
else
{
java(bundle,st_iT,"android.content.Intent.getExtras")
java(info,bundle,"android.os.BaseBundle.get","String","key_response")
json(info,info)
syso(info)
//openid:QQ授权登陆后返回的用户在该应用的唯一标识
json(info,"get","openid",openid)
//access_token:QQ授权登陆后返回的访问令牌
json(info,"get","access_token",access_token)
t()
{
//腾讯QQ用户信息查询接口
s url = "https://graph.qq.com/user/get_simple_userinfo"
s ua = "Mozilla/5.0 (Linux; Android 7.0; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.134 Mobile Safari/537.36 LeBrowser/7.4.0"
ss("appid=1107961986&access_token="+access_token+"&openid="+openid+"&Format=json",data)
//访问腾讯官方接口获取QQ用户相关个人信息
hs(url,data,"utf-8",null,"true",ua,back)
//json解析相关返回参数
json(back,back)
syso(back)
//nickname:用户在QQ空间的昵称
json(back,"get","nickname",nickname)
//figureurl:头像
json(back,"get","figureurl_2",figureurl)
ufnsui()
{
//把用户信息在下面这些控件中显示出来,需要自行更改
us(文本1,"text",nickname) //QQ名称
us(文本2,"text",openid) //cookie
us(图像1,"src",figureurl) //QQ头像
tw("登录成功")
}
}
}
3.编辑”qq登陆”的myu界面内容
fn 调用QQ登陆(app_id,app_name,scope,cmp)
javanew(bundle,"android.os.Bundle")
javanew(params,"android.os.Bundle")
javags(data1,null,"android.os.Build","MODEL")
javags(data2,null,"android.os.Build$VERSION","SDK")
javags(data3,null,"android.os.Build","RELEASE")
java(null,params,"android.os.BaseBundle.putString","String","status_os","String",data3)
java(null,params,"android.os.BaseBundle.putString","String","client_id","String",app_id)
java(null,params,"android.os.BaseBundle.putString","String","format","String","json")
java(null,params,"android.os.BaseBundle.putString","String","status_version","String",data2)
java(null,params,"android.os.BaseBundle.putString","String","oauth_app_name","String",app_name)
java(null,params,"android.os.BaseBundle.putString","String","status_machine","String",data1)
java(null,params,"android.os.BaseBundle.putString","String","pf","String","openmobile_android")
java(null,params,"android.os.BaseBundle.putString","String","sdkp","String","a")
java(null,params,"android.os.BaseBundle.putString","String","sdkv","String","3.3.0.lite")
java(null,params,"android.os.BaseBundle.putString","String","scope","String",scope)
java(null,params,"android.os.BaseBundle.putString","String","need_pay","String","1")
java(null,bundle,"android.os.Bundle.putBundle","String","key_params","android.os.Bundle",params)
java(null,bundle,"android.os.BaseBundle.putString","String","key_action","String","action_login")
java(null,bundle,"android.os.BaseBundle.putString","String","appeid","String",app_id)
java(null,bundle,"android.os.BaseBundle.putString","String","key_request_code","String","11101")
sit(intent,"classname",cmp,"com.tencent.open.agent.AgentActivity")
java(null,intent,"android.content.Intent.putExtras","android.os.Bundle",bundle)
uit(intent, "result", 0)
end fn
完结
全部写入后,可通过”运行”看效果,更多的登入信息可以在”调试”中看效果,最后打包既可