版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】怎么使用js实现微信分享
这篇文章给大家分享的是有关怎么使用js实现微信分享的内容。在下觉得挺实用的,因此分享给大家做个参考,一起跟随在下过来看看吧。通常自己做的一个页面想通过微信像朋友分享时,展示的标题和描述都是不是自己想要的,自己查了一些资料,原来是通过js来进行控制展示效果如下:标题、描述、还有分享的图片都是有js来控制的。js代码如下<script>
var
dataForWeixin
=
{
appId:
"",
MsgImg:
"Christmas/201012189457639.gif",//显示图片
TLImg:
"Christmas/201012189457639.gif",//显示图片
url:
"Christmas/6.html?stra=!u738B!u4F1F",//跳转地址
title:
"将我的思念和祝福送给您,颐养源祝大家圣诞快乐",//标题内容
desc:
"将我的思念和祝福送给您,颐养源祝大家圣诞快乐",//描述内容
fakeid:
"",
callback:
function
()
{
}
};
(function
()
{
var
onBridgeReady
=
function
()
{
WeixinJSBridge.on('menu:share:appmessage',
function
(argv)
{
WeixinJSBridge.invoke('sendAppMessage',
{
"appid":
dataForWeixin.appId,
"img_url":
dataForWeixin.MsgImg,
"img_width":
"120",
"img_height":
"120",
"link":
dataForWeixin.url,
"desc":
dataForWeixin.desc,
"title":
dataForWeixin.title
},
function
(res)
{
(dataForWeixin.callback)();
});
});
WeixinJSBridge.on('menu:share:timeline',
function
(argv)
{
(dataForWeixin.callback)();
WeixinJSBridge.invoke('shareTimeline',
{
"img_url":
dataForWeixin.TLImg,
"img_width":
"120",
"img_height":
"120",
"link":
dataForWeixin.url,
"desc":
dataForWeixin.desc,
"title":
dataForWeixin.title
},
function
(res)
{
});
});
WeixinJSBridge.on('menu:share:weibo',
function
(argv)
{
WeixinJSBridge.invoke('shareWeibo',
{
"content":
dataForWeixin.title,
"url":
dataForWeixin.url
},
function
(res)
{
(dataForWeixin.callback)();
});
});
WeixinJSBridge.on('menu:share:facebook',
function
(argv)
{
(dataForWeixin.callback)();
WeixinJSBridge.invoke('shareFB',
{
"img_url":
dataForWeixin.TLImg,
"img_width":
"120",
"img_height":
"120",
"link":
dataForWeixin.url,
"desc":
dataForWeixin.desc,
"title":
dataForWeixin.title
},
function
(res)
{
});
});
};
if
(document.addEventListener)
{
document.addEventListener('WeixinJSBridgeReady',
onBridgeReady,
false);
}
else
if
(document.attachEvent)
{
document.attachEvent('WeixinJSBridgeReady',
onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady',
onBridgeReady);
}
})();
</script>另一个微信分享js代码:/**!
*
微信内置浏览器的Javascript
API,功能包括:
*
*
1、分享到微信朋友圈
*
2、分享给微信好友
*
3、分享到腾讯微博
*
4、新的分享接口,包含朋友圈、好友、微博的分享(for
iOS)
*
5、隐藏/显示右上角的菜单入口
*
6、隐藏/显示底部浏览器工具栏
*
7、获取当前的网络状态
*
8、调起微信客户端的图片播放组件
*
9、关闭公众平台Web页面
*/
var
WeixinApi
=
(function
()
{
"use
strict";
/**
*
分享到微信朋友圈
*
@param
{Object}
data
待分享的信息
*
@p-config
{String}
appId
公众平台的appId(服务号可用)
*
@p-config
{String}
imgUrl
图片地址
*
@p-config
{String}
link
链接地址
*
@p-config
{String}
desc
描述
*
@p-config
{String}
title
分享的标题
*
*
@param
{Object}
callbacks
相关回调方法
*
@p-config
{Boolean}
async
ready方法是否需要异步执行,默认false
*
@p-config
{Function}
ready(argv)
就绪状态
*
@p-config
{Function}
dataLoaded(data)
数据加载完成后调用,async为true时有用,也可以为空
*
@p-config
{Function}
cancel(resp)
取消
*
@p-config
{Function}
fail(resp)
失败
*
@p-config
{Function}
confirm(resp)
成功
*
@p-config
{Function}
all(resp)
无论成功失败都会执行的回调
*/
function
weixinShareTimeline(data,
callbacks)
{
callbacks
=
callbacks
||
{};
var
shareTimeline
=
function
(theData)
{
WeixinJSBridge.invoke('shareTimeline',
{
"appid":theData.appId
?
theData.appId
:
'',
"img_url":theData.imgUrl,
"link":theData.link,
"desc":theData.title,
"title":theData.desc,
//
注意这里要分享出去的内容是desc
"img_width":"640",
"img_height":"640"
},
function
(resp)
{
switch
(resp.err_msg)
{
//
share_timeline:cancel
用户取消
case
'share_timeline:cancel':
callbacks.cancel
&&
callbacks.cancel(resp);
break;
//
share_timeline:confirm
发送成功
case
'share_timeline:confirm':
case
'share_timeline:ok':
callbacks.confirm
&&
callbacks.confirm(resp);
break;
//
share_timeline:fail发送失败
case
'share_timeline:fail':
default:
callbacks.fail
&&
callbacks.fail(resp);
break;
}
//
无论成功失败都会执行的回调
callbacks.all
&&
callbacks.all(resp);
});
};
WeixinJSBridge.on('menu:share:timeline',
function
(argv)
{
if
(callbacks.async
&&
callbacks.ready)
{
window["_wx_loadedCb_"]
=
callbacks.dataLoaded
||
new
Function();
if(window["_wx_loadedCb_"].toString().indexOf("_wx_loadedCb_")
>
0)
{
window["_wx_loadedCb_"]
=
new
Function();
}
callbacks.dataLoaded
=
function
(newData)
{
window["_wx_loadedCb_"](newData);
shareTimeline(newData);
};
//
然后就绪
callbacks.ready
&&
callbacks.ready(argv);
}
else
{
//
就绪状态
callbacks.ready
&&
callbacks.ready(argv);
shareTimeline(data);
}
});
}
/**
*
发送给微信上的好友
*
@param
{Object}
data
待分享的信息
*
@p-config
{String}
appId
公众平台的appId(服务号可用)
*
@p-config
{String}
imgUrl
图片地址
*
@p-config
{String}
link
链接地址
*
@p-config
{String}
desc
描述
*
@p-config
{String}
title
分享的标题
*
*
@param
{Object}
callbacks
相关回调方法
*
@p-config
{Boolean}
async
ready方法是否需要异步执行,默认false
*
@p-config
{Function}
ready(argv)
就绪状态
*
@p-config
{Function}
dataLoaded(data)
数据加载完成后调用,async为true时有用,也可以为空
*
@p-config
{Function}
cancel(resp)
取消
*
@p-config
{Function}
fail(resp)
失败
*
@p-config
{Function}
confirm(resp)
成功
*
@p-config
{Function}
all(resp)
无论成功失败都会执行的回调
*/
function
weixinSendAppMessage(data,
callbacks)
{
callbacks
=
callbacks
||
{};
var
sendAppMessage
=
function
(theData)
{
WeixinJSBridge.invoke('sendAppMessage',
{
"appid":theData.appId
?
theData.appId
:
'',
"img_url":theData.imgUrl,
"link":theData.link,
"desc":theData.desc,
"title":theData.title,
"img_width":"640",
"img_height":"640"
},
function
(resp)
{
switch
(resp.err_msg)
{
//
send_app_msg:cancel
用户取消
case
'send_app_msg:cancel':
callbacks.cancel
&&
callbacks.cancel(resp);
break;
//
send_app_msg:confirm
发送成功
case
'send_app_msg:confirm':
case
'send_app_msg:ok':
callbacks.confirm
&&
callbacks.confirm(resp);
break;
//
send_app_msg:fail发送失败
case
'send_app_msg:fail':
default:
callbacks.fail
&&
callbacks.fail(resp);
break;
}
//
无论成功失败都会执行的回调
callbacks.all
&&
callbacks.all(resp);
});
};
WeixinJSBridge.on('menu:share:appmessage',
function
(argv)
{
if
(callbacks.async
&&
callbacks.ready)
{
window["_wx_loadedCb_"]
=
callbacks.dataLoaded
||
new
Function();
if(window["_wx_loadedCb_"].toString().indexOf("_wx_loadedCb_")
>
0)
{
window["_wx_loadedCb_"]
=
new
Function();
}
callbacks.dataLoaded
=
function
(newData)
{
window["_wx_loadedCb_"](newData);
sendAppMessage(newData);
};
//
然后就绪
callbacks.ready
&&
callbacks.ready(argv);
}
else
{
//
就绪状态
callbacks.ready
&&
callbacks.ready(argv);
sendAppMessage(data);
}
});
}
/**
*
分享到腾讯微博
*
@param
{Object}
data
待分享的信息
*
@p-config
{String}
link
链接地址
*
@p-config
{String}
desc
描述
*
*
@param
{Object}
callbacks
相关回调方法
*
@p-config
{Boolean}
async
ready方法是否需要异步执行,默认false
*
@p-config
{Function}
ready(argv)
就绪状态
*
@p-config
{Function}
dataLoaded(data)
数据加载完成后调用,async为true时有用,也可以为空
*
@p-config
{Function}
cancel(resp)
取消
*
@p-config
{Function}
fail(resp)
失败
*
@p-config
{Function}
confirm(resp)
成功
*
@p-config
{Function}
all(resp)
无论成功失败都会执行的回调
*/
function
weixinShareWeibo(data,
callbacks)
{
callbacks
=
callbacks
||
{};
var
shareWeibo
=
function
(theData)
{
WeixinJSBridge.invoke('shareWeibo',
{
"content":theData.desc,
"url":theData.link
},
function
(resp)
{
switch
(resp.err_msg)
{
//
share_weibo:cancel
用户取消
case
'share_weibo:cancel':
callbacks.cancel
&&
callbacks.cancel(resp);
break;
//
share_weibo:confirm
发送成功
case
'share_weibo:confirm':
case
'share_weibo:ok':
callbacks.confirm
&&
callbacks.confirm(resp);
break;
//
share_weibo:fail发送失败
case
'share_weibo:fail':
default:
callbacks.fail
&&
callbacks.fail(resp);
break;
}
//
无论成功失败都会执行的回调
callbacks.all
&&
callbacks.all(resp);
});
};
WeixinJSBridge.on('menu:share:weibo',
function
(argv)
{
if
(callbacks.async
&&
callbacks.ready)
{
window["_wx_loadedCb_"]
=
callbacks.dataLoaded
||
new
Function();
if(window["_wx_loadedCb_"].toString().indexOf("_wx_loadedCb_")
>
0)
{
window["_wx_loadedCb_"]
=
new
Function();
}
callbacks.dataLoaded
=
function
(newData)
{
window["_wx_loadedCb_"](newData);
shareWeibo(newData);
};
//
然后就绪
callbacks.ready
&&
callbacks.ready(argv);
}
else
{
//
就绪状态
callbacks.ready
&&
callbacks.ready(argv);
shareWeibo(data);
}
});
}
/**
*
新的分享接口
*
@param
{Object}
data
待分享的信息
*
@p-config
{String}
appId
公众平台的appId(服务号可用)
*
@p-config
{String}
imgUrl
图片地址
*
@p-config
{String}
link
链接地址
*
@p-config
{String}
desc
描述
*
@p-config
{String}
title
分享的标题
*
*
@param
{Object}
callbacks
相关回调方法
*
@p-config
{Boolean}
async
ready方法是否需要异步执行,默认false
*
@p-config
{Function}
ready(argv,shareTo)
就绪状态
*
@p-config
{Function}
dataLoaded(data)
数据加载完成后调用,async为true时有用,也可以为空
*
@p-config
{Function}
cancel(resp,shareTo)
取消
*
@p-config
{Function}
fail(resp,shareTo)
失败
*
@p-config
{Function}
confirm(resp,shareTo)
成功
*
@p-config
{Function}
all(resp,shareTo)
无论成功失败都会执行的回调
*/
function
weixinGeneralShare(data,
callbacks)
{
callbacks
=
callbacks
||
{};
var
generalShare
=
function
(general,theData)
{
//
如果是分享到朋友圈,则需要把title和desc交换一下
if(general.shareTo
==
'timeline')
{
var
title
=
theData.title;
theData.title
=
theData.desc
||
title;
theData.desc
=
title;
}
//
分享出去
general.generalShare({
"appid":theData.appId
?
theData.appId
:
'',
"img_url":theData.imgUrl,
"link":theData.link,
"desc":theData.desc,
"title":theData.title,
"img_width":"640",
"img_height":"640"
},
function
(resp)
{
switch
(resp.err_msg)
{
//
general_share:cancel
用户取消
case
'general_share:cancel':
callbacks.cancel
&&
callbacks.cancel(resp
,general.shareTo);
break;
//
general_share:confirm
发送成功
case
'general_share:confirm':
case
'general_share:ok':
callbacks.confirm
&&
callbacks.confirm(resp
,general.shareTo);
break;
//
general_share:fail发送失败
case
'general_share:fail':
default:
callbacks.fail
&&
callbacks.fail(resp
,general.shareTo);
break;
}
//
无论成功失败都会执行的回调
callbacks.all
&&
callbacks.all(resp
,general.shareTo);
});
};
WeixinJSBridge.on('menu:general:share',
function
(general)
{
if
(callbacks.async
&&
callbacks.ready)
{
window["_wx_loadedCb_"]
=
callbacks.dataLoaded
||
new
Function();
if(window["_wx_loadedCb_"].toString().indexOf("_wx_loadedCb_")
>
0)
{
window["_wx_loadedCb_"]
=
new
Function();
}
callbacks.dataLoaded
=
function
(newData)
{
window["_wx_loadedCb_"](newData);
generalShare(general,newData);
};
//
然后就绪
callbacks.ready
&&
callbacks.ready(general,general.shareTo);
}
else
{
//
就绪状态
callbacks.ready
&&
callbacks.ready(general,general.shareTo);
generalShare(general,data);
}
});
}
/**
*
加关注(此功能只是暂时先加上,不过因为权限限制问题,不能用,如果你的站点是部署在*.下,也许可行)
*
@param
{String}
appWeixinId
微信公众号ID
*
@param
{Object}
callbacks
回调方法
*
@p-config
{Function}
fail(resp)
失败
*
@p-config
{Function}
confirm(resp)
成功
*/
function
addContact(appWeixinId,callbacks){
callbacks
=
callbacks
||
{};
WeixinJSBridge.invoke("addContact",
{
webtype:
"1",
username:
appWeixinId
},
function
(resp)
{
var
success
=
!resp.err_msg
||
"add_contact:ok"
==
resp.err_msg
||
"add_contact:added"
==
resp.err_msg;
if(success)
{
callbacks.success
&&
callbacks.success(resp);
}else{
callbacks.fail
&&
callbacks.fail(resp);
}
})
}
/**
*
调起微信Native的图片播放组件。
*
这里必须对参数进行强检测,如果参数不合法,直接会导致微信客户端crash
*
*
@param
{String}
curSrc
当前播放的图片地址
*
@param
{Array}
srcList
图片地址列表
*/
function
imagePreview(curSrc,srcList)
{
if(!curSrc
||
!srcList
||
srcList.length
==
0)
{
return;
}
WeixinJSBridge.invoke('imagePreview',
{
'current'
:
curSrc,
'urls'
:
srcList
});
}
/**
*
显示网页右上角的按钮
*/
function
showOptionMenu()
{
WeixinJSBridge.call('showOptionMenu');
}
/**
*
隐藏网页右上角的按钮
*/
function
hideOptionMenu()
{
WeixinJSBridge.call('hideOptionMenu');
}
/**
*
显示底部工具栏
*/
function
showToolbar()
{
WeixinJSBridge.call('showToolbar');
}
/**
*
隐藏底部工具栏
*/
function
hideToolbar()
{
WeixinJSBridge.call('hideToolbar');
}
/**
*
返回如下几种类型:
*
*
network_type:wifi
wifi网络
*
network_type:edge
非wifi,包含3G/2G
*
network_type:fail
网络断开连接
*
network_type:wwan
2g或者3g
*
*
使用方法:
*
WeixinApi.getNetworkType(function(networkType){
*
*
});
*
*
@param
callback
*/
function
getNetworkType(callback)
{
if
(callback
&&
typeof
callback
==
'function')
{
WeixinJSBridge.invoke('getNetworkType',
{},
funct
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024智慧医院医用耗材SPD供应链院外库建设指南
- 供货送货服务承诺书
- 计算机通信与网络(山东联盟)智慧树知到期末考试答案章节答案2024年青岛理工大学
- 员工离职面谈记录表
- 龙门吊拆卸施工见证点模板
- 企业债务审计实施方案
- 修饰美容化妆技能标准评分表
- 5.3.1函数的单调性-高二数学精讲高分突破系列(苏教版2019选择性必修第一册)(解析版)
- 生物质炭行业趋势及市场前景分析
- 矿山机械行业特征
- CNC作业指导书
- 特种设备安全管理机构
- 船舶防污染培训课件(PPT 201页)
- 鲁菜的特色、发展及创新分析.doc
- 三菱M70数控系统主轴外置接近开关定向功能
- InBody720测试结果解析及应用
- 数学教师评职称个人总结5篇范文
- 公司绿化管理制度
- Hyperion报表合并软件HFM介绍
- 《出生医学证明》单亲母亲情况声明
- 葫芦丝教学PPT
评论
0/150
提交评论