<script>

  var shares=null;

       var Intent=null,File=null,Uri=null,main=null;


function plusReady(){
updateSerivces();
if(plus.os.name=="Android"){
main = plus.android.runtimeMainActivity();
Intent = plus.android.importClass("android.content.Intent");
File = plus.android.importClass("java.io.File");
Uri = plus.android.importClass("android.net.Uri");
}
}
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}

/**** 更新分享服务****/
function updateSerivces(){
plus.share.getServices( function(s){
shares={};
for(var i in s){
var t=s[i];
shares[t.id]=t;
}
}, function(e){
layer.msg("获取分享服务列表失败:"+e.message );
} );
}

/*** 分享操作* @param {JSON} sb 分享操作对象s.s为分享通道对象(plus.share.ShareService)* @param {Boolean} bh 是否分享链接*/
function shareAction(sb,bh) {
if(!sb||!sb.s){
layer.msg("无效的分享服务!");
return;
}

var msg={content:sharehrefDes.value,extra:{scene:sb.x}};
if(bh){
msg.href=sharehref.value;
if(sharehrefTitle&&sharehrefTitle.value!=""){
msg.title=sharehrefTitle.value;
}
if(sharehrefDes&&sharehrefDes.value!=""){
msg.content=sharehrefDes.value;
}
msg.thumbs=["_www/logo.png"];
msg.pictures=["_www/logo.png"];
}else{
if(pic&&pic.realUrl){
msg.pictures=[pic.realUrl];
}
}
// 发送分享
if ( sb.s.authenticated ) {
layer.msg("已授权");
shareMessage(msg,sb.s);
} else {
layer.msg("未授权");
sb.s.authorize( function(){
shareMessage(msg,sb.s);
},function(e){
layer.msg("认证授权失败:"+e.code+" - "+e.message );

});
}
}
/*** 发送分享消息* @param {JSON} msg* @param {plus.share.ShareService} s*/
function shareMessage(msg,s){

// alert(JSON.stringify(msg));
s.send( msg, function(){
alert("分享到\""+s.description+"\"成功! " );

}, function(e){
layer.msgt( "分享到\""+s.description+"\"失败: "+JSON.stringify(e) );

} );
}
// 分析链接
function shareHref(){
var shareBts=[];
// 更新分享列表
var ss=shares['weixin'];
ss&&ss.nativeClient&&(shareBts.push({title:'微信朋友圈',s:ss,x:'WXSceneTimeline'}),
shareBts.push({title:'微信好友',s:ss,x:'WXSceneSession'}));
ss=shares['qq'];
ss&&ss.nativeClient&&shareBts.push({title:'分享给QQ好友',s:ss});
// 弹出分享列表
shareBts.length>0?plus.nativeUI.actionSheet({title:'分享链接',cancel:'取消',buttons:shareBts},function(e){
(e.index>0)&&shareAction(shareBts[e.index-1],true);
}):plus.nativeUI.alert('当前环境无法支持分享链接操作!');
}

</script>

<body>
<!-- 主页面标题 -->
<p>链接地址:</p>
<input id="sharehref" type="url" value="http://www.baidu.com/" />
<p>链接标题:</p>
<input id="sharehrefTitle" type="text" value="title" />
<p>链接描述:</p>
<input id="sharehrefDes" type="text" value="test"/></br>
<div>我是新的</div>
<button type="button" onclick="shareHref()"> 分享链接</button>

</body>

/**请珍惜劳动成果**/

关于APP分享到QQ、微信等的更多相关文章

  1. Android 微信分享与QQ分享功能

    微信分享与QQ分享功能现在都挺常见的,可以根据一些第三方社会化分功能快速实现,不过多多少少都不怎么纯净,最好都是自己看官方文档来实现就最好了~ 一.微信分享 微信分享功能需要先在微信开放平台注册应用并 ...

  2. 手机QQ内置网页,微信内置网页中进行分享到QQ和微信的操作

    微信内的网页分享: API内容详见微信开发文档  https://mp.weixin.qq.com/wiki 这里需要注意的是:调用微信API的时候修改的是微信内网页右上角三个点那里打开后,选择分享之 ...

  3. 微信sdk分享,苹果手机分享到qq好友和qq空间没有反应

    最近线上程序苹果手机进行微信分享时,分享到qq好友和qq空间,无法调用分享程序,从微信跳转到qq后就没有反应了,但是安卓手机分享就没事? 解决:调用微信sdk分享时,分享的url(link)的参数不能 ...

  4. asp.net mvc 如何调用微信jssdk接口:分享到微信朋友(圈)| 分享到qq空间

    如何在asp.net mvc 项目里, 调用微信jssdk接口,现实功能: 分享到微信朋友(圈)| 分享到qq空间 1 创建一个Action,准备一些数据,初始化数据(签名): /// <sum ...

  5. 友盟分享--集成QQ和微信

    随着社交工具的应用范围越来越广,分享一些内容的功能也开始要求实现了. 用得比较多的第三方,比如说友盟,比如说Share等等... 前几天刚用友盟写了集成QQ和微信客户端的功能,觉得有必要分享一下. 在 ...

  6. 分享微博,qq空间,微信

    <div class="share_class" ><div class="bdsharebuttonbox">    <a hr ...

  7. 访问量分类统计(QQ,微信,微博,网页,网站APP,其他)

    刚准备敲键盘,突然想起今天已经星期五了,有点小兴奋,一周又这么愉快的结束,又可以休息了,等等..我好像是来写Java博客的,怎么变成了写日记,好吧,言归正传. 不知道大家有没有遇到过这样的需求:统计一 ...

  8. h5怎么做分享到QQ 、朋友圈、微信 、微博等功能

    微信已经成为我们日常聊天联系基本的必备工具,所以小菜我首先介绍一下如何调用微信的分享功能.其实除了可以在微信上分享到朋友圈和发送给好友,微信的分享接口还提供了分享到QQ和分享到腾讯微博等,就是在页面的 ...

  9. App分享之微信微博等各个社交平台的分享授权规则和常见问题

    一.新浪微博分享规则 新浪微博支持分享类型: 应用内分享也就是网页分享支持: 文字,文字+图片,要分享链接需要链接添加在text里分享 客户端分享支持:文字,图片,文字+图片,图片+文字+链接 参数说 ...

随机推荐

  1. cms系统架构设计

    本篇只包含已实现系统的部分设计,若后续有新需求再另行更新. 在线用户表 用户角色表 用户权限表 ……

  2. centos7破解mariadb密码

    第一步,停止运行mysql: systemctl stop mariadb.service 第二步,使用" -skip-grant-tables"参数重新启动mysql: mysq ...

  3. Integer陷阱(0~127和其他 数值相等对象比较)

    Integer 类在对象中包装了一个基本类型 int 的值. 有一个陷阱存在,经常出现在面试题中,情况如下面代码 public class IntegerDemo { public static vo ...

  4. 设计一个程序能够将某一个目录下面的所有文件名打印出来---File类的使用

    ,设计一个程序能够将某一个目录下面的所有文件名打印出来 运用到的方法有:返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录:list()           测试此抽象路径名表示的 ...

  5. c++中find函数的用法

    find函数主要实现的是在容器内查找指定的元素,并且这个元素必须是基本数据类型的.查找成功返回一个指向指定元素的迭代器,即元素在容器中的下标,查找失败返回end迭代器. 头文件 #include &l ...

  6. CSS3笔记之第二天

    1.CSS盒模型 指定元素的宽度和高度width,height 2.CSS边框 border-style:solid; border-width:5px; border-top-width:15px; ...

  7. 【Linux】ssh免密登录

    一.ssh免密配置 ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例.有机器A(192.168.1.155),B(192.168. ...

  8. 关于用VMware克隆linux系统后,无法联网找不到eth0网卡的问题

    当使用克隆后的虚拟机时发现系统中的网卡eth0没有了,使用ifconfig -a会发现只有eth1.因为系统是克隆过来的,原有的eth0以及ip地址都是原先网卡的,VMware发现已经被占用,就会创建 ...

  9. 第2阶段——编写uboot之启动内核和制作Makefile(2)

    目标: 1   添加头文件setup.h和serial.h 2   写main函数   2.1 帮内核设置串口0, (内核启动会打印出启动信息) 2.2把内核读入到SDRAM 2.3设置参数(参考u- ...

  10. CurrentCulture和CurrentUICulture的区别

    CurrentCulture 这个属性用来表示和改变使用者要使用的“地区属性”,地区属性改变后,数字.日期时间等表示格式也随之改变. 注意:一定是“地区属性”,如"zh-cn".& ...