APICloud可以让你开发变得很简单

QQ登录、分享怎么做?相信APICloud可以让你开发变得很简单。这里分享一个demo供大家参考。

1.使用模块,先打开它的开发文档http://www.apicloud.com/mod_detail/37360

添加模块至APIcloud项目

2. 编译自定义loader

3. 在腾讯开放平台管理中心创建应用,提交审核,拿到appkey和appId

4. 在项目代码中找到config.xml

添加代码

<font face="微软雅黑" size="3"><feature name="QQPlus">

<param name="urlScheme" value="" />

<param name="apiKey" value="" />

</feature></font>

复制代码

5.拼接urlScheme和appkey

urlScheme =》tencent加上你的appId

Appkey =》appkey

填入第四步的位置

6. 可以在他的代码里边找相应的方法代码......

7.备注:腾讯开放平台项目未审核通过,有些功能会出问题,分享操作先登录,登录先验证安装。

附图:

代码:

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />

<meta name="format-detection" content="telephone=no,email=no,date=no,address=no">

<title>QQ</title>

<link rel="stylesheet" type="text/css" href="../css/api.css" />

<link rel="stylesheet" type="text/css" href="../css/aui.css" />

</head>

<body>

<div class="aui-content-padded">

<p><div class="aui-btn aui-btn-primary aui-btn-block aui-btn-sm aui-margin-b-15" onclick="fnEvent(1)">检测安装</div></p>

<p><div class="aui-btn aui-btn-info aui-btn-block aui-btn-sm aui-margin-b-15" onclick="fnEvent(2)">QQ登录</div></p>

<p><div class="aui-btn aui-btn-success aui-btn-block aui-btn-sm aui-margin-b-15" onclick="fnEvent(3)">获取用户信息</div></p>

<p><div class="aui-btn aui-btn-primary aui-btn-block aui-btn-sm aui-margin-b-15" onclick="fnEvent(4)">分享文本</div></p>

<p><div class="aui-btn aui-btn-primary aui-btn-block aui-btn-sm aui-margin-b-15" onclick="fnEvent(5)">分享图片</div></p>

<p><div class="aui-btn aui-btn-primary aui-btn-block aui-btn-sm aui-margin-b-15" onclick="fnEvent(6)">分享新闻</div></p>

<p><div class="aui-btn aui-btn-primary aui-btn-block aui-btn-sm aui-margin-b-15" onclick="fnEvent(7)">分享音乐</div></p>

<p><div class="aui-btn aui-btn-primary aui-btn-block aui-btn-sm aui-margin-b-15" onclick="fnEvent(8)">分享视频</div></p>

<p><div class="aui-btn aui-btn-primary aui-btn-block aui-btn-sm aui-margin-b-15" onclick="fnEvent(9)">分享说说</div></p>

</div>

</body>

< type="text/java" src="..//api.js"></>

< type="text/java">

apiready = function() {

qq = api.require(‘QQPlus‘);

};

function fnEvent(tag) {

switch (tag) {

case 1:

fnInstalled();

break;

case 2:

fnLogin();

break;

case 3:

fnGetUserInfo();

break;

case 4:

fnShareText();

break;

case 5:

fnShareImage();

break;

case 6:

fnShareNews();

break;

case 7:

fnShareMusic();

break;

case 8:

fnShareVideo();

break;

case 9:

fnShareMood();

break;

default:

break;

};

}

/**

* 检测安装

*/

function fnInstalled() {

qq.installed(function(ret, err) {

if (ret.status) {

api.toast({msg: "已安装QQ"});

} else {

api.toast({msg: "没安装QQ"});

};

});

};

/**

* QQ登录

*/

function fnLogin() {

qq.installed(function(ret, err) {

if (ret.status) {

qq.login(function(ret, err) {

if (ret.status) {

console.log("登录成功");

console.log(JSON.stringify(ret));

} else {

console.log(JSON.stringify(err));

}

});

};

});

};

/**

* 获取用户信息

*/

function fnGetUserInfo() {

qq.getUserInfo(function(ret, err) {

if (ret.status) {

console.log(JSON.stringify(ret.info));

info = ret.info.replace(/[\\]/g,‘‘);

console.log(info);

} else {

console.log(JSON.stringify(err));

}

});

};

/**

* 分享文本

*/

function fnShareText() {

api.prompt({

title:"输入要分享的文本",

buttons: [‘确定‘,"取消"]

}, function(ret, err) {

var index = ret.buttonIndex;

var text = ret.text;

console.log(index);

if(index != 1 ){

api.toast({msg:"用户取消!"});

}else if(index == 1 && $api.trimAll(text) == ‘‘){

api.toast({msg:"请输入分享内容"});

}else if(index == 1 && $api.trimAll(text) != ‘‘){

_fnShareText($api.trimAll(text));

}

});

function _fnShareText(text){

qq.shareText({

text: text

}, function(ret, err) {

if (ret.status) {

console.log("分享文本成功!");

console.log(JSON.stringify(ret));

} else {

console.log(JSON.stringify(err));

}

});

}

};

/**

* 分享图片

*/

function fnShareImage() {

api.confirm({

title: ‘选项‘,

msg: ‘请选择分享至‘,

buttons: [ ‘QQ好友‘,‘QQ空间‘]

}, function(ret, err) {

_fnShareImage(ret.buttonIndex);

});

function _fnShareImage(i) {

var type = [‘QZone‘, ‘QFriend‘];

qq.shareImage({

type: type[i],

imgPath: ‘widget://launch/launch1080x1920.png‘

}, function(ret, err) {

if (ret.status) {

console.log("分享图片成功!");

console.log(JSON.stringify(ret));

} else {

console.log(JSON.stringify(err));

}

});

};

};

/**

* 分享新闻

*/

function fnShareNews() {

api.confirm({

title: ‘选项‘,

msg: ‘请选择分享至‘,

buttons: [ ‘QQ好友‘,‘QQ空间‘]

}, function(ret, err) {

_fnShareNews(ret.buttonIndex);

});

function _fnShareNews(i) {

var type = [‘QZone‘, ‘QFriend‘];

qq.shareNews({

type: type[i],

url: ‘https://news.qq.com/a/20171108/029944.htm‘,

title: ‘携程:被虐儿童为18至24个月幼儿 亲子园明日停业‘,

deion: ‘携程:被虐儿童为18至24个月幼儿 亲子园明日停业‘,

imgUrl: ‘http://inews.gtimg.com/newsapp_bt/0/2264720095/641‘

}, function(ret, err) {

if (ret.status) {

console.log("分享新闻成功!");

console.log(JSON.stringify(ret));

} else {

console.log(JSON.stringify(err));

}

});

};

};

/**

* 分享音乐

*/

function fnShareMusic() {

api.confirm({

title: ‘选项‘,

msg: ‘请选择分享至‘,

buttons: [ ‘QQ好友‘,‘QQ空间‘]

}, function(ret, err) {

_fnShareMusic(ret.buttonIndex);

});

function _fnShareMusic(i) {

var type = [‘QZone‘, ‘QFriend‘];

qq.shareMusic({

type: type[i],

audioUrl: ‘http://7xq864.com1.z0.glb.clouddn.com/apicloud/591bde468d4e44b21cc225b7b6e1129a.mp3‘,

targetUrl: ‘http://douban.fm/?start=8508g3c27g-3&cid=-3‘,

title: ‘桔子香水‘,

deion: ‘任贤齐‘,

imgUrl: ‘http://community.apicloud.com/bbs/uc_server/avatar.php?uid=441392&size=middle‘

}, function(ret, err) {

if (ret.status) {

console.log("分享音乐成功!");

} else {

console.log(JSON.stringify(err));

}

});

}

};

/**

* 分享视频

*/

function fnShareVideo() {

qq.shareVideo({

videoUrl: ‘widget://image/APICloud.mp4‘

}, function(ret, err) {

if (ret.status) {

console.log("分享视频成功!");

} else {

console.log(JSON.stringify(err));

}

});

}

/**

* 分享说说

*/

function fnShareMood() {

qq.shareMood({

summary: ‘测试分享说说‘,

imgUrls: [‘widget://icon/icon150x150.png‘]

}, function(ret, err) {

if (ret.status) {

console.log("分享说说成功!");

} else {

console.log(JSON.stringify(err));

}

});

}

</>

</html>

更多信息请关注https://www.apicloud.com

时间: 2024-10-12 01:18:11

APICloud可以让你开发变得很简单的相关文章

spring 第一篇(1):让java开发变得更简单(上)

1.释放POJOS能量 传统开发中是如何束缚POJOS呢,如果你开发过java很长时间,那你一定有接触过EJB的开发.那时候开发一个小小的功能都要扩展框架的类或者实现其接口.所以你很容易在早期的Struts,WebWork,Taperstry等框架中看到侵入到你应用中的框架代码. spring尽可能避免在你的应用中充满它的API.spring从来都不强迫你实现具体的spring接口或者扩展一个具体的spring类.替代的是,在基于spring开发的应用中经常没有指示说明你正在使用spring.最

spring 第一篇(1):让java开发变得更简单(下)

应用切面(aspects) DI能够让你的软件组件间保持松耦合,而面向切面编程(AOP)能够让你捕获到在整个应用中可重用的组件功能.在软件系统中,AOP通常被定义为提升关注点分离的一个技术.系统由很多的组件组成,每个组件负责一部分的功能.但是这些组件往往除了核心功能外,还有些额外的责任.比如像日志,事务管理和安全这些系统服务会被引进到组件中.这些服务通常被称为横切关注点(cross-cutting-concerns),因为它们常常贯穿于多个组件中. 在多个组件中传播这些概念,你会引进两个复杂层面

[翻译和注解]Kafka Streams简介: 让流处理变得更简单

Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Kafka Streams还没有正式发布,所以具体的API和功能和0.10.0.0版(2016年6月发布)有所区别.但是Jay Krpes在这简文章里介绍了很多Kafka Streams在设计方面的考虑,还是很值得一看的. 以下的并不会完全按照原文翻译,因为那么搞太累了……这篇文件的确很长,而且Jay

方国治:做股票真的很简单,简单到

http://blog.sina.com.cn/s/blog_5ae207160102vrlb.html 方国治:做股票真的很简单,简单到 (2015-07-11 20:00:18) 转载▼ 标签: 股票 分类: 投资大道 2015年6月13日,由七禾网和混沌天成北京营业部共同举办的“2015金融巅峰论坛暨第二期混沌天成北京沙龙”活动在北京鸿坤国际大酒店香江厅举行.由善境投资总经理吴洪涛.深圳开拓者科技有限公司副总经理陈四建.<趋势操盘法则>畅销书作者方国治,以及上海奇获投资管理有限公司投资总

手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单

手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 Chrome的更新速度可以说前无古人,现在我每天开机的第一件事就是打开Chrome检查是不是有了新版本.界面清爽.操作人性化.网络备份资料和快速的启动速度令我爱不释手,还有它拥有众多的扩展程序,相对于firefox的插件来说,

(原)那些让开发变得不太顺利的厂商

题记) cocos2d-x似乎很好,然其不同版本的差异性,兼容性让人无奈,其在wp下webSocket的问题,Sqlite的问题似乎始终抹不去,U3D似乎看起来不错,开发帧-帧的调试确实不错,基于Mono的运行环境,然在中低端机器下,3D似乎运行总是那么不完美,2D看起来似乎总是那么差.然引擎而已,有高有低,所有的应用-游戏对于程序员来说,最终都是比的内功. 1)安卓的坑 开发第一个项目的时候,需求是游戏+应用的结合,应用部分的图片量相当的大,整个页面几乎全是图片,连文字都是使用图片打上去,游戏

在一个高并发系统中 如果突然出现一个应用或者说一个服务突然变得很慢,应该怎么排查?

声明:该总结为网友朋友总结,本人是归纳成文,方便各网友学习交流. 这个是考线上排查问题能力,没有标准答案,作为开发,假设这种情景出现你怎么诊断问题? 首先:想知道,在实际情况下,怎么知道[一个应用或者说一个服务突然变得很慢]?调用访问的时候会发现的,对于业务流程比较熟悉很重要,先能够初步圈出,可能出现问题的地方,服务监控是必须的,做业务必须要知道自己服务的状态. 1.首先就是想看日志,后来想想看日志确实不太可行,并发量太大的情况下,查日志会很慢,(看日志,pstack strace gdb).

用Emacs写cnblogs-从此写blog变的很easy!

*/--> 用Emacs写cnblogs-从此写blog变的很easy! Table of Contents 1 需求说明 2 解决问题 3 结语 1 需求说明 在进入正题前还是先扯些废话吧!这Emacs还是大二的时候自己玩linux的时候,我的小学同学给我介绍的,第一次就教我安装,还把他的配置文件分享给我了,[虽然都是很简单的配置,俺这同学不太喜欢弄这些虚无的东西,可我就比较喜欢].Orgmode是大四的时候,自己找老师问关于Emacs的东西的时候,我的好好东老师给我推荐的,这才进入了orgm

VC开发多语言界面 多种方法(很简单) 有源码

(需源码先留邮箱)先上图 1.通过遍历 得到所有控件ID号与TEXT,得到一个中文语言配置文件 void CVV_485Dlg::getCaptionForWindow() //做程序时用,其它时间不用 { //枚举对话框中所有组件 CWnd *pCtrl = GetWindow(GW_CHILD); while(pCtrl!=NULL) { UINT ctrlID = pCtrl->GetDlgCtrlID(); // setControlCaption(pCtrl,ctrlID); CStr