PhoneGap/Cordova微信分享插件【升级版】

阎丰羽
2023-12-01

安装:

?
1
cordova plugin add https: //git.oschina.net/jiusem/WechatShare-for-PhoneGap.git

安装成功后,需要将插件目录中的 wxapi 文件夹 移动 到你的 主包 中,这是微信官方的要求,wxapi 文件夹的作用是接受来自微信的回传信息。

移动文件夹后,java文件会出现一个报错,将第一行的包名修改为你自己的主包名即可。

还需要做的工作是打开WechatShare.java文件,大约在58行处,将appID修改为你自己在微信开放平台申请到的。

至此,准备工作就绪,可以使用插件了。

与所有插件一样,你应当在deviceready事件后调用插件,像这样:

?
1
2
3
document.addEventListener( 'deviceready' , function (){
     //调用插件
}, false );

首先来看看如何分享网页到微信,我想这是我们最常见的应用了:

?
1
2
3
4
5
6
7
8
9
10
var  args = {
      type:  'webpage' ,
      url: 'http://www.baidu.com' ,
      imgUrl: 'https://www.baidu.com/img/bdlogo.png' ,
      title: '文章标题' ,
      desc: '文章简介' ,
      isSendToTimeline: true  //true表示分享到朋友圈,false分享给好友
};
    
navigator.WechatShare.send(args);

分享文字:

?
1
2
3
4
5
6
7
var  args = {
      type:  'text' ,
      text: '需要分享的文字' ,
      isSendToTimeline: true  //true表示分享到朋友圈,false分享给好友
};
    
navigator.WechatShare.send(args);

分享图片:

?
1
2
3
4
5
6
7
8
var  args = {
      type:  'image' ,
      imageType:  'path' , //也可以使用 'url' 分享图片.
      data:  '/test.png' , //SD card 路径 or url
      isSendToTimeline:  true
};
    
navigator.WechatShare.send(args);

分享音乐:

?
1
2
3
4
5
6
7
8
9
10
11
var  args = {
      type:  'music' ,
      url:  'http://x.x.x/test.mp3' ,
      title:  'title' ,
      desc:  'desc' ,
      isLowBand:  true , // 是否使用低音质
      imgUrl: '' , //图片路径
      isSendToTimeline:  true
};
    
navigator.WechatShare.send(args);

分享视频:

?
1
2
3
4
5
6
7
8
9
10
11
var  args = {
      type:  'video' ,
      url:  'http://x.x.x.swf' ,
      title:  'title' ,
      desc:  'desc' ,
      isLowBand:  true ,
      imgUrl:  'http://www.baidu.com/img/bdlogo.gif' ,
      isSendToTimeline:  true
};
    
navigator.WechatShare.send(args);

分享文件:

?
1
2
3
4
5
6
7
8
9
10
var  args = {
      type:  'file' ,
      path:  'file:///test.mp3' ,//file 's fullPath
      desc: ' 我在发本地文件 ',
      title: ' 文件 ',
      imgUrl: ' http: //www.baidu.com/img/bdlogo.gif',
      isSendToTimeline:  true
};
    
navigator.WechatShare.send(args);

如果需要处理微信分享的结果,判断分享是否成功,可以定义一个回调函数:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
navigator.WechatShare.sendCallBack =  function (result){
    switch (result){
        case  1:
        //分享成功
        //...编写你的业务逻辑
        break ;
        
        case  2:
            //取消分享
            //...
            break ;
             
        case  3:
            //验证失败
            //...
            break ;
             
        case  4:
            //未知错误
            //...
            break
      }
}

在git中,我提供了一个完整的Android分享示例,在example文件中:

https://git.oschina.net/jiusem/WechatShare-for-PhoneGap.git

里面包含keystore文件,可以用来调试;在bin文件夹中有一个生成的apk文件,可以安装到手机上来测试。

可能的问题:有些网友反映将项目导入Eclipse后运行,不能调起微信。这是因为微信有校验签名的流程,请参考微信分享相关文档对签名的说明。

插件暂时仅支持Android,iOS版本也会尽快加上。
 类似资料: