QQ互联 Universal Links第三方APP客户端代码确认

QQ互联 Universal Links第三方APP客户端代码确认

请务必确保第三方APP的客户端已经处理了系统的如下回调函数,具体详情可参见sdkDemo,如下图所示。

– (BOOL)application:(UIApplication *)application continueUserActivity:
(NSUserActivity *)userActivity restorationHandler:(void(^)
(NSArray<id<UIUserActivityRestoring>> * __nullable
restorableObjects))restorationHandler NS_AVAILABLE_IOS(8_0);

当出现了图4的安全校验页,并紧接着正常打开了第三APP;若此时“停留在第三方APP中,并未出现二次跳装的过程”,则检查如下接口的初始化代码,即 delegate不可为nil 。

/**
* 初始化TencentOAuth对象
* \param appId 不可为nil,第三方应用在互联开放平台申请的唯一标识
* \param delegate 不可为nil,第三方应用用于接收请求返回结果的委托对象
* \return 初始化后的授权登录对象
*/
– (id)initWithAppId:(NSString *)appId
andDelegate:(id<TencentSessionDelegate>)delegate;

QQ互联分享交互行为确认

QQ互联分享交互行为确认

【场景一】

未使用授权登录的情况下,“首次”进行分享,唤起手机QQ–>分享成功后弹窗提醒只有一个选项(即返回APP),并无“留在QQ”的选项。

后续分享成功后,选项卡可选择留在QQ。

【场景二】

场景一中若在无“留在QQ”的状态下,没有点击返回第三方APP,下次再进行分享时,会出现如图四的“安全校验页”。

此时交互为:从APP唤起手Q–>出现安全校验页–>校验成功后返回第三方APP–>再次拉起手Q完成分享。

这种多次跳转的过程,每个用户只会出现一次,若多次出现该类跳转,请按上述检查下Universal Links的有效性。

QQ互联 确认手机QQ的Universal Links正常

QQ互联 确认手机QQ的Universal Links正常

确认手机QQ(8.1.3或以上)版本在苹果设备上Universal Links正常,这是为了保证OpenSdk和手机QQ之间的通信正常。

在系统的Safari浏览器中输入 https://qm.qq.com,下拉查看是否有打开QQ的入口,如图一所示:

若无该打开入口,可能是系统拉取手机QQ的Universal Links失败,请检查当前手机的网络状态是否正常,或者更新/重装手机QQ。

QQ互联网站应用及移动应用接入申请教程

QQ互联网站应用及移动应用接入申请教程

应用接入前,首先需进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权。

1.1 创建应用

开发者注册完成后,点击“应用管理”按钮。

跳转到qq互联管理中心页面,点击创建应用。

选择需要创建的应用类型,我们以网站应用为例:

点击创建网站应用后,按要求完善信息:

  1. 网站回调地址填写规范:https://wiki.connect.qq.com/%E5%9B%9E%E8%B0%83%E5%9C%B0%E5%9D%80%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%8F%8A%E4%BF%AE%E6%94%B9%E6%96%B9%E6%B3%95
  2. 备案信息填写规范:http://www.miitbeian.gov.cn/publish/query/indexFirst.action


网站信息填写完成,点击“创建应用”后,网站应用创建完成,点击“应用管理”,进入管理中心,在管理中心可以查看到网站获取的appid和appkey,如下图所示:

备注:创建移动应用与网站应用步骤方法一致,在此不赘述。
 

1.2 网站信息完善

点击“应用中心”,应用右侧的“查看”,进入应用详情页面。

应用详情页面可点击“修改”来编辑应用“基本信息”和“平台信息”。


点击“应用接口”可查看已获取的接口,使用QQ登录功能。

QQ互联开放平台注册开发者账号教程

开发者通过以下几个步骤,即可接入互联开放平台: 注册开发者→创建应用→通过审核并获取接口权限

1.注册开发者

1. 在QQ互联开放平台首页 https://connect.qq.com/ ,点击右上角的“登录”按钮,使用QQ帐号登录,如下图所示:

重要提示:
开发者QQ号码一旦注册不能变更,建议使用公司公共QQ号码而不是员工私人号码注册,以免遇到员工离职等情况造成不必要的麻烦。


2. 登录成功后会跳转到开发者注册页面,在注册页面按要求提交公司或个人的基本资料。下图所示的是公司注册页面:

3.按要求提交资料后,审核人员会进行审核,通过审核即可成为开发者。

APP开发实现QQ登录 APP唤起QQ实现三方授权登录 qqLogin QQ登录 通过网页回调

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

qqLogin QQ登录 通过网页回调

登录结果及授权参数将通过 URL Query 传到给你指定的链接

核心代码示例,详情参阅demo

jsBridge.qqLogin("./u.cshtml");
/*
如果登录成功会跳转到链接
u.cshtml?openid=xxxx&access_token=xxxx&userinfo=xxxx
userinfo 参数是 JSON.stringify(userinfo) 的 URLEncode 编码
*/

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.qqLogin("./u.cshtml");
/*
如果登录成功会跳转到链接
u.cshtml?openid=xxxx&access_token=xxxx&userinfo=xxxx
userinfo 参数是 JSON.stringify(userinfo) 的 URLEncode 编码
*/

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.qqLogin("./u.cshtml");
/*
如果登录成功会跳转到链接
u.cshtml?openid=xxxx&access_token=xxxx&userinfo=xxxx
userinfo 参数是 JSON.stringify(userinfo) 的 URLEncode 编码
*/

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

为APP开发QQ登录能力 qqLogin QQ登录 通过函数回调

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

qqLogin QQ登录 通过函数回调

通过js函数回调获取登录结果及授权参数

jsBridge.qqLogin(function(succ, ret) {
  if (succ) {
    alert(JSON.stringify(ret));
  } else {
    alert("登录失败或取消了登录");
  }
});
/*
登录成功的结果在 ret 中返回,是个 json 对象:
{
  openid:       "wwwwwwwwwwwwwww",
  access_token: "aaaaaaaaaaaaaaa",
  userinfo: {       //用户资料
    nickname: "sssssss"
    //...
  }
}
*/

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.qqLogin(function(succ, ret) {
  if (succ) {
    alert(JSON.stringify(ret));
  } else {
    alert("登录失败或取消了登录");
  }
});
/*
登录成功的结果在 ret 中返回,是个 json 对象:
{
  openid:       "wwwwwwwwwwwwwww",
  access_token: "aaaaaaaaaaaaaaa",
  userinfo: {       //用户资料
    nickname: "sssssss"
    //...
  }
}
*/

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.qqLogin(function(succ, ret) {
  if (succ) {
    alert(JSON.stringify(ret));
  } else {
    alert("登录失败或取消了登录");
  }
});
/*
登录成功的结果在 ret 中返回,是个 json 对象:
{
  openid:       "wwwwwwwwwwwwwww",
  access_token: "aaaaaaaaaaaaaaa",
  userinfo: {       //用户资料
    nickname: "sssssss"
    //...
  }
}
*/

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->