zoukankan      html  css  js  c++  java
  • ionic3+angular4的三方微信开发(登录and分享)

    登录:

     1、在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。

     2、通过cordova添加微信插件;进入项目的目录下,运行命令

        ionic cordova plugin add cordova-plugin-wechat  --variable wechatappid=AppID(就是你申请的AppID)

        3、微信需要在编译文件中声明变量,declare let Wechat;

             

        4、微信授权登录,也是最重要的一步,获取code,为获取access_token提供参数
    wechatLogin(){
           let loading = this.loadingCtrl.create({
                 content: "跳转微信登录中...",//loading框显示的内容
                 dismissOnPageChange: true, // 是否在切换页面之后关闭loading框
                 showBackdrop: true //是否显示遮罩层
           });
          loading.present();
          try {
               let scope = "snsapi_userinfo",
               state = "_" + (+new Date());
              Wechat.auth(scope, state, (response) => {
                     let res = response;

           console.log(JSON.stringify(res))
                    //在调用service的getAccessToken方法获取access_token,和acopenid,

         //然后再service的getWechatUserInfo方法获取微信用户的基本信息,最后保存登录,完成
         }, (reason) => {

            console.log(reason);
          });
        } catch (error) {

           console.log(error);
        } finally {
            loading.dismiss();
        }
    }

      5、获取access_token和openid,这个方法接口放在service.ts文件里,由ts调用
               getAccessToken(data){

         //这里注意参数grant_type,官方文档上说的值填写authorization_code,实际上就是填写的值是:"authorization_code";就行,不要理解成其他什么code

         let url ="https://api.weixin.qq.com/sns/oauth2/access_token?appid=??&secret=??&grant_type=authorization_code";
                     url = url+"&code="+data.code;
                    return this.http.get(url, {}).toPromise().then(response => {
                             return response.json();
                   }).catch(CommonService.handleError);
              }

      6、通过access_token和openid获取用户信息,这个方法接口放在service.ts文件里,由ts调用

        getWechatUserInfo(AccessToken,Openid){

          let  url="https://api.weixin.qq.com/sns/userinfo"

          url = url+"?access_token="+AccessToken+"&openid="+Openid;
        return this.http.get(url, {}).toPromise().then(response => {
        return response.json();
       }).catch(CommonService.handleError);
        }

    分享:
      1、上面的1、2步需要操作一次
      2、代码
    //标题
    title: string = "分享的标题";
    //描述
    description: string = "简单描述!";
    //分享链接
    link: string = "分享后点击查的url";
    //分享图片
    image: string = "图片链接";
    //分享的目标://0:微信好友,1:朋友圈
    scene: number=0;
    wxShare() {
    try {
    Wechat.share({
    // text: msg,
    message: {
    title: this.title,
    description: this.description,
    thumb: "",
    media: {
    type: Wechat.Type.WEBPAGE,
    webpageUrl: url
    }
    },
    scene: scene == 0 ? Wechat.Scene.SESSION : Wechat.Scene.Timeline // share to Timeline
    }, function () {
    console.log("分享成功");
    }, function (reason) {
        console.log("分享失败");
    });
    } catch (error) {
    console.log(error);
    }
    }
    //开发注意:APPID的一致性,需要做的功能在微信开发平台上相应的权限是否获取,还有就是该微信的相关操作不能使用真机联调,上面有看不明白的也可以查阅微信开发平台官方文档。
     
  • 相关阅读:
    题6:利用二进制表示浮点数
    题5:将整数二进制形式的奇偶位交换
    如何访问别的主机共享的文件
    排序算法------插入排序
    centos7进入单用户模式修改root密码
    排序算法------选择排序法
    排序算法------冒泡排序法
    题4:判断一个数是否时2的整数次方
    LockSupport类
    synchronized原理及锁膨胀
  • 原文地址:https://www.cnblogs.com/dreamwf/p/8743991.html
Copyright © 2011-2022 走看看