Lucy Wu

工作与生活的足迹

ionic android app 微信/朋友圈分享网页

app

ionic框架/cordova/phonegap
安卓android平台
插件https://github.com/xu-li/cordova-plugin-wechat

创建一个ionic安卓项目

ionic start 文件夹/项目路径
ionic platform add android

安装插件

用git命令

cordova plugin add https://github.com/xu-li/cordova-plugin-wechat --variable wechatappid=**你申请的微信移动项目APPID**

没装git shall可以使用本地安装

先从git上把安装包下载到本地后解压,建议使用英文路径
然后:

ionic plugin add 安装包路径 --variable wechatappid=**你申请的微信移动应用APPID**

APPID在微信开放平台申请,具体步骤按提示都可以搞定

使用前注意事项

使用的appid时,项目的以下项必须和申请时填的信息相符

-包名
-签名(.keystore文件)

debug版无法使用微信分享(至少自测是这样的,并且还把app搞的挂掉了)

发布+签名后才可正常使用

使用

js可用方法在插件的www文件夹中wechat.js中,喜欢研究的可以从这个文件入手。下面是写的一个demo

/*
网页分享
*/
var weChatShare = {
    check:function(){
        //检查是否安装成功
        Wechat.isInstalled(function (installed) {
            alert("Wechat installed: " + (installed ? "Yes" : "No"));
        }, function (reason) {
            alert("Failed: " + reason);
        });
    },
    webpage:function(_opt,_scene){
        _scene = _scene==undefined?Wechat.Scene.TIMELINE:_scene;
        alert("分享到:"+(_scene === 0?"聊天界面":(_scene === 1?"朋友圈":_scene)));
        opt = _opt || {
            title:"网页分享——百度"
            ,description:"简述,短述,摘录"
            ,url:"http://baidu.com"
            ,img:"https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png"
        };
        Wechat.share({
                message: {
                    title: opt.title,
                    description: opt.description,
                    mediaTagName: "这是什么呢?什么呢?",//这是什么呢?媒体标签名!!
                    thumb: opt.img,
                    media: {
                        type: Wechat.Type.WEBPAGE,   // webpage
                        webpageUrl: opt.url   // webpage
                    }
                },
                scene: _scene   // 默认分享到朋友圈
            }, function () {
                alert("Success");
            }, function (reason) {
                alert("Failed: " + reason);
            });
    }
};
//发送到朋友圈
window.weChatShare = function(opt){
    weChatShare.webpage(opt);
};
//发送给好友
window.weChatShareToFriend = function(opt){
    weChatShare.webpage(opt,Wechat.Scene.SESSION);
};

发布和签名

看这里

遇到的坑

语法错误

错误在这个文件
platforms\android\src\com\ionicframework\starter\wxapi\WXEntryActivity.java

//第42行 
@Override
public void onResp(BaseResp resp)

这个函数中有几个ERR开头的静态变量,调用的名字和类(xu.li.cordova.wechat\www\Wechat.java)定义名不相符,改成了这样就过去了。
@Override 
public void onResp(BaseResp resp) {
Log.i(WXEntryActivity.class.getName(), resp.toString());
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
switch(resp.getType())
{
case ConstantsAPI.COMMAND_SENDAUTH:
auth(resp);
break;
default:
Wechat.currentCallbackContext.success();
break;
}
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
Wechat.currentCallbackContext.error(Wechat.ERROR_USER_CANCEL);
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
Wechat.currentCallbackContext.error(Wechat.ERROR_AUTH_DENIED);
break;
case BaseResp.ErrCode.ERR_SENT_FAILED:
Wechat.currentCallbackContext.error(Wechat.ERROR_SENT_FAILED);
break;
case BaseResp.ErrCode.ERR_UNSUPPORT:
Wechat.currentCallbackContext.error(Wechat.ERROR_UNSUPPORT);
break;
case BaseResp.ErrCode.ERR_COMM:
Wechat.currentCallbackContext.error(Wechat.ERROR_COMMON);
break;
default:
Wechat.currentCallbackContext.error(Wechat.ERROR_UNKNOWN);
break;
}
finish();
}

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lucy_100/article/details/49686071
个人分类: webapp-app
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

ionic android app 微信/朋友圈分享网页

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭