小苏
小苏
  • 发布:2016-04-20 12:05
  • 更新:2018-05-23 22:03
  • 阅读:3640

微信分享,可以发送给好友,但log显示的回调是失败。

分类:HTML5+

可以分享给好友,朋友圈, 发送过去后(成功了),但console.log 日志显示 调取的是

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

error 回调接口。

LOG:分享到"微信"失败: {"code":-100,"message":"[Share微信分享:-3]Unable to send, http://ask.dcloud.net.cn/article/287"}

备注:工程lib,用的是 hello的 例子。

这啥情况哦!,如果签名,ID,等信息没配置好,按道理是发送不成功的呀,或者压根都打不开微信的好友列表的。

var shares=null,bhref=false;  
/**  
 * 更新分享服务  
 */  
function updateSerivces(){  
    plus.share.getServices( function(s){  
        console.log( "获取分享服务列表-success" );  
        shares={};  
        for(var i in s){  
            var t=s[i];  
            shares[t.id]=t;  
            console.log( "获取分享服务列表 =>>>" + t.id);  
        }  
    }, function(e){  
        console.log( "获取分享服务列表失败:"+e.message );  
    } );  
}  
/**  
   * 分享操作  
   * @param {JSON} sb 分享操作对象s.s为分享通道对象(plus.share.ShareService)  
   * @param {Boolean} bh 是否分享链接  
   */  
function shareAction(sb,bhref) {  
    console.log( "分享操作:" );  
    if(!sb||!sb.s){  
        console.log( "无效的分享服务!" );  
        return;  
    }  
    var msg={content:"测试content-下",extra:{scene:sb.x}};  

    if(bhref){  
        console.log( "分享是的标题-----链接!" );  
        msg.href="http://ask.dcloud.net.cn/";  

        msg.title="测试标题";  
        msg.content="测试content下喜爱下喜爱西安";  
        msg.thumbs=["logo.png"];  
        msg.pictures=["logo.png"];  

    }else{  
        console.log( "分享是的-------->图片!" );  
        //预留  
    }  
    // 发送分享  
    if ( sb.s.authenticated ) {  
        console.log( "---已授权---" );  
        shareMessage(msg,sb.s);  
    } else {  
        console.log( "---未授权---" );  

        sb.s.authorize( function(){  
                shareMessage(msg,sb.s);  
                console.log( "---边授权,边发送---" );  
            },function(e){  
            console.log( "认证授权失败:"+e.code+" - "+e.message );  
        });  
    }  
}  
/**  
   * 发送分享消息  
   * @param {JSON} msg  
   * @param {plus.share.ShareService} s  
   */  
function shareMessage(msg,s){  
    console.log("msg=======>>>"+JSON.stringify(msg));  
    s.send( msg, function(){  
        console.log( "分享到\""+s.description+"\"成功! " );  
    }, function(e){  
        console.log( "分享到\""+s.description+"\"失败: "+JSON.stringify(e) );  
    } );  
}  
// 打开分享  
function shareShow(){  
    var shareBts=[];  
    // 更新分享列表  
    var ss=shares['weixin'];  
    ss&&ss.nativeClient&&(shareBts.push({title:'微信朋友圈',s:ss,x:'WXSceneTimeline'}),  
    shareBts.push({title:'微信好友',s:ss,x:'WXSceneSession'}));  
    // 弹出分享列表  
    shareBts.length>0?plus.nativeUI.actionSheet({title:'分享',cancel:'取消',buttons:shareBts},function(e){  
        (e.index>0)&&shareAction(shareBts[e.index-1],true);  
    }):plus.nativeUI.alert('当前环境无法支持分享操作!');  
}  

mui.plusReady(function() {  
    updateSerivces();  
}, true );
2016-04-20 12:05 负责人:无 分享
已邀请:
小苏

小苏 (作者)

package com.timefr.mobile.android.wxapi;  
import io.dcloud.share.mm.AbsWXCallbackActivity;//需要继承的是这个类,切记。  
public class WXEntryActivity extends AbsWXCallbackActivity {  

}  

拷贝的hello工程,进行减法做实际项目,发现此坑。已解决。

问题就是: 可以分享成功,但却log提示 失败。

  • 兰亭小孩

    楼主这是调的微信吗,我也有个功能从一个APP 分享给微信好友 有什么可以指点的吗

    2016-12-12 17:45

愿随风丶飘雪

愿随风丶飘雪 - 勿在浮沙筑高台

我也遇到了相同的问题,可以跳转到微信界面,但是在失败的回调中提示:
分享到"微信"失败: {"code":-100,"message":"[Share微信分享:-3]Unable to send, http://ask.dcloud.net.cn/article/287"}

最后发现是因为WXEntryActivity继承的不一样,分享也要继承登录的AbsWXCallbackActivity,如下图

第二点:必须要新建WXEntryActivity类,实现IWXAPIEventHandler接口,同时该文件必须在xxx.xxx.xxx.wxapi包下,回调才有作用

该问题目前已经被锁定, 无法添加新回复