zxlie / weixinapi Goto Github PK
View Code? Open in Web Editor NEW专门用于微信公众平台的Javascript API
License: MIT License
专门用于微信公众平台的Javascript API
License: MIT License
我在做一个web的小游戏,分享完成后会出一个alert,“已分享”,然后要点到右上角的按钮才能回到自己的页面,请问这有办法解决吗?跟我的网站应用没有审核有关系吗?
ios没有问题,分享到朋友圈等其他ok。
但是换安卓手机,就只有一个收藏了。用的angular
作者你好,首先感谢您整理的这份代码。其中有一个功能是打开扫描二维码,我觉得非常好,那请问官方有没有直接js打开手机拍照的接口呢?
这个问题好像部分的安卓机会有,不知道有没有完美的解决办法。
直接用最新版的API作为例子
ios 6.0.2 无法自定义
安卓的可以
大家是怎么解决的?
如题,比如我写个小游戏,分享的方案是由游戏结果而不同,这样的话,如果一开始就传入分享的方案就无法做到动态变化了!有提供支持吗?
我目前的处理是在handler方法中加入
for(var k in theData){
if($.isFunction(theData[k]))
theData[k] = theData[k]();
}
这样在外部传入的是个方法,而不是字符就可以完成了,但实现方式并不让人满意。
最近发现微信的发送和分享不能正常使用了。然后使用了WeixinApi。
现在的情况是在android的微信中可以发送分享。但是Iphone上不能使用。
具体想问Api.generalShare(wxData,wxCallbacks);这个方法,具体怎么使用。
亲测几部不同版本的IOS系统手机,均无法掉起分享。
android的可以。
某些特殊的域。
例子里也只看到title和desc
var wxCallbacks = {
favorite: false,
ready: function() {
this.dataLoaded({
title : '在这里可以单独修改其中的title字段',
imgUrl : 'http://www.baidu.com/img/bdlogo.png'
});
},..................................
这段完全不走,问题:IOS一切正常 安卓无法分享
我用了最新的版本,但是分享时图片无法显示
目前的解决方案汇总:
链接:https://github.com/blueszhao/wechat/wiki
解决的问题:自定义分享图片、标题、链接
thanks @blueszhao
另外的解决方案:
http://blog.csdn.net/im_kk/article/details/42435471
这个也是不错的解决方法!
欢迎大家积极跟帖解决方案,方便大家~~
分享到朋友圈时,没能显示图片和描述内容,ps:图片的链接地址(imgUrl)是正确的,描述内容显示的却是标题(title)
Android下的分享朋友圈回调不会触发的问题,无法解决吗?
ios扫描github上的二维码,进行朋友圈分享是可以看到 分享自定义图片的。
但按照github上面的代码,完整照搬,部署自己代码的时候,ios 6.0.2 没有执行ready里面的方法,分享朋友圈小图标是默认蓝色的那个,没显示自定义的图片!
请问,想在自己的H5页面上,播放自己的视频,有没有好的解决方案?谢谢。
已知的bug:
1、openInWeixin无法正常检测是否是在微信中打开
2、shareToTimeline,shareToWeibo,shareToFriend的所有回调事件无法执行,初步检测有可能是微信WeixinJSBridge没有回调invoke注册的函数
环境Windows Phone 8.1
RT,即使是你给的DEMO,在分享的时候仍然会提示出错。
大致错误信息如下:
额,代码有错。。。
错误信息:TypeError: 'undefined' is not a function(evaluating 'j.generalShare(k,function(){})')
出错文件:..../WeixinApi.js
出错位置:(这里的信息根据不同的情况,抱错行不一样)
如果关闭调试模式,收藏不会报错,但是也不会收藏成功。
IPHONE4和IPHONE5都有一样的问题
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
请问appid和签名应该写什么呢?哪些随机生成的东西应该怎么生成呢?
为什么这个链接http://news.qq.com/zt2014/patients/mobile.html貌似没有做这些配置,显示的一样是正确的内容呢?大神们急救啊
我测试的weixinapi.js用的是目前作者扫一扫页面所用的js文件,发现标题中的问题,自己的回调函数中什么都没填写。
另外,用目前最新版本的js分享时不出图片,所以才用了扫一扫所用的js文件
刚在用的时候发现,分享到朋友圈的title无效
Android4.3,微信6.0,用微信收藏demo链接的时候,也会触发分享回调wxCallbacks
感觉升级之后,分享接口彻底挂掉了,不晓得其他人发现这个问题了没。
有个特殊的需求,某些页面不想隐藏右上角,但同时需要阻止用户的分享行为。
以前是这么写的
WeixinJSBridge.on('menu:share:timeline',function(){
alert('私有页面,不要分享哦');
return false;
})
我觉得大神你的api也可以增加一个前置事件以便实现这样的需求,在下先自己动手改改了:
//WexinApi.js 129行左右
// 监听分享操作
WeixinJSBridge.on(cmd.menu, function (argv) {
//增加前置回调before
if(callbacks.before && callbacks.before(argv,data) == false){
return false;
}
//over
callbacks.dataLoaded = callbacks.dataLoaded || new Function();
调用:
// 分享的回调
var wxCallbacks = {
//分享之前
before : function(){
alert('禁止分享本页面');
return false;
},
......
双击浏览器上的背景图时,图片会向上拉伸,可以禁用双击事件吗?
分享到朋友圈内容desc好像显示不出来,是不是api 有调整了。
分享给朋友也是这样。
我把内容写到title 里面就可以了
最新版本貌似WeixinApi.ready不能正确执行,用你们的demo也不可以。我的机子是android ,微信版本6.0.2。是怎么回事?谢谢
试了一下作者的demo页面,也不能用了。是微信禁止了这个api吗。希望作者能尽快给出新的的api
在一些测试、游戏页面中是有在游戏脚本中修改分享文案的需求的。
现在的处理方法是分享的内容为一个全局对象,那么任何地方都可以修改。
問題: 當使用 Async 時Send到Chat 有些字段沒有刷新
解決辦法:
line 124 下面 : 加上
cmd.menu == 'menu:share:appmessage' ||
完整如下:
if (cmd.menu == 'menu:share:timeline' ||
cmd.menu == 'menu:share:appmessage' ||
(cmd.menu == 'menu:general:share' && argv.shareTo == 'timeline')) {
theData = {
"appid":theData.appId ? theData.appId : '',
"img_url":theData.imgUrl,
"link":theData.link,
"desc":theData.title,
"title":theData.desc,
"img_width":"640",
"img_height":"640"
};
}
請參考!
我觉得使用shareToTimeline
、shareToFriend
这个命名不太好,我第一次理解就是这个方法可以直接分享到用户的好友圈,而不用用户在右上角添加option按钮。
我的建议可以是addShareToTimelineListening
这样感觉更直观
rt
可否写的更详细一点。 实例代码:
//判断当前网页是否在微信内置浏览器中打开
var flag = WeixinApi.openInWeixin();
if(!flag){
alert("请用微笑信打开此链接!");
document.getElementById("page1").innerHTML="<div style='color:red;text-align:center;margin-top:50px;font-size:2em;'>非法操作你的动作已被监控!</div>";
}
我的是这样的。
我试如下(不执行):
// 代码准备完成
WeixinApi.ready(function(Api){
//判断当前网页是否在微信内置浏览器中打开
var flag = WeixinApi.openInWeixin();
if(!flag){
alert("XXXX");
}
}
以前让用户关注微信公众平台的话 1.Android: 只需要点击这里添加微无锡公众号 但现在不行了 如果变成点击这里添加微无锡公众号这样子是可以的;2.iOS的话以前是调用WeixinJSBridge 的方法 WeixinJSBridge.invoke('profile',{
'username':'gh_2c6803f90bbc', /* 你的公众号原始ID /
'scene':'57'
},function(resp){
alert(resp.err_msg); / 在这里,我们把err_msg输出 */
}); 这样是可以的,但现在不可以了,请问有什么其他方式可以直接在iOS的微信里面关注么?谢谢
这是BUG吗?
发送给朋友,是正常的。
苹果IOS会没有这个问题吗?
在网页上加了iframe 指向原始的包含weixinapi的网页,这个时候没有调用Weixin.ready(),是本身微信那里有限制还是什么原因呢?
我在博主原文章( http://www.baidufe.com/item/f07a3be0b23b4c9606bb.html )下面看到博主说【在网页上设置一个按钮,用户通过点击按钮将网页内容分享到朋友圈,而不是通过点击手机右上角的方式】实现不了,那weixinApi.js里面提供的“分享到朋友圈”的功能是什么?
我试了下这个貌似执行不了:
addEvent('shareTimeline',function(el,e){
WeixinApi.shareToTimeline({
"appid": '',
"img_url":'',
"link":'http://www.baidu.com',
"desc":'desc',
"title":'title', // 注意这里要分享出去的内容是desc
"img_width":"640",
"img_height":"640"
},{
confirm:function(){
alert('cg')
}
})
})
最新的6.0.2中IOS系统正常,Android系统初始化分享时无法获取到给定的内容,不知道是什么问题,不知是否有遇到相同问题?
先提一个意见,建立@zxlie 将这个API构建成CommonJS模型,采用这种方式:
var WechatAPI = {};
WechatAPI.shareToTimeline = function(){...}
...
// 所有方法对象暴露在WechatAPI之中就好了,显得更加清晰,而不是return一个{....}。
// module.exports = WechatAPI; //seajs模块化增加此行
这种方式显得更加规范,也符合模块化js标准,便于seajs,requejs等整合。
以上纯属个人建议,仅供参考,谢谢。
下面贡献一个微信打开地图的API,不保证100%能用,是从大众点评的地址里面挖出来的。
/**
* 从网页里直接调起微信地图
* @param lat 经度
* @param lng 纬度
* @param poiName 地址名称
* @param poiAddress 详细地址
* @param infoUrl 查看位置界面底部的超链接
* @param scale 地区缩放级别
*/
WechatAPI.openLocation = function (detail) {
var callback = detail.callback || {};
WeixinJSBridge.invoke('openLocation', {
"latitude": detail.lat,//纬度
"longitude": detail.lng,//经度
"name": detail.name, //POI名称
"address": detail.address, //地址
"scale": (typeof detail.scale == "undefined") ? 14 : detail.scale, //地图缩放级别
"infoUrl": (typeof detail.infoUrl == "undefined") ? "" : detail.infoUrl //查看位置界面底部的超链接
}, function (res) {
// 返回res.err_msg,取值
// open_location:ok 打开成功
// open_location:invalid_coordinate 非法的经纬度
WeixinJSBridge.log(res.err_msg);
if (res.err_msg == "system:function_not_exist") {
gotoUpdate();
return;
}
if (res.err_msg != "open_location:ok") {
callback(res.err_msg);
}
});
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.