美文网首页
Android移动应用接入微信分享功能

Android移动应用接入微信分享功能

作者: 皎__皎 | 来源:发表于2021-11-24 10:05 被阅读0次

1.申请应用的AppID

移动应用要想接入微信分享功能,得先到微信开放平台创建并提交审核,只有审核通过的应用才能进行开发。具体参考微信开放平台创建移动应用

2.AndroidStudio集成微信SDK

  • 在 build.gradle 文件中,添加如下依赖即可:
dependencies {
    api 'com.tencent.mm.opensdk:wechat-sdk-android:+'
}

(从6.8.0版本开始,请使用 wechat-sdk-android )

  • 由于 jCenter 服务关停,需要修改成引用 Maven Central,在项目的根 build.gradle 文件中,添加如下代码即可:
buildscript {
    repositories {
        jcenter()       // 原有 jCenter 引用可继续保留
        mavenCentral()
    }
}

allprojects {
    repositories {
        jcenter()      // 原有 jCenter 引用可继续保留
        mavenCentral()
    }
}

特别注意,目前 Maven Central仅支持部分版本:6.6.4、6.6.5、6.6.23、6.7.0、6.7.9、6.8.0,建议开发者升级至最新版本6.8.0。后续所有版本更新都会上传至Maven Central。

3.注册到微信

要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的 AppID。(如下图所示,可以在程序入口 Activity 的 onCreate 回调函数处,或其他合适的地方将你的应用 id 注册到微信。注册函数示例如下图所示。

// APP_ID 替换为你的应用从官方网站申请到的合法AppID
private static final String APP_ID = "wx123456";
// IWXAPI 是第三方app和微信通信的openApi接口
private IWXAPI api;

private regToWx() {
    // 通过WXAPIFactory工厂,获取IWXAPI的实例
    api = WXAPIFactory.createWXAPI(this, APP_ID, true);
    // 将应用的appId注册到微信
    api.registerApp(APP_ID);

   //建议动态监听微信启动广播进行注册到微信
   registerReceiver(new BroadcastReceiver() {
     @Override
     public void onReceive(Context context, Intent intent) {
       // 将该app注册到微信
      api.registerApp(Constants.APP_ID);
     }
    }, new IntentFilter(ConstantsAPI.ACTION_REFRESH_WXAPP));

  }

4.发送分享请求到微信

通过 IWXAPI 的 sendReq来实现,sendReq 是第三方 app 主动发送消息给微信,发送完成之后会切回到第三方 app 界面。下面是发送网页的示例:

//初始化一个WXWebpageObject,填写url
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl ="网页url";

//用 WXWebpageObject 对象初始化一个 WXMediaMessage 对象
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title ="网页标题 ";
msg.description ="网页描述";
Bitmap thumbBmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData =Util.bmpToByteArray(thumbBmp, true);

//构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");
req.message =msg;
req.scene =mTargetScene;
req.userOpenId = getOpenId();

//调用api接口,发送数据到微信
api.sendReq(req);

需要注意的是,SendMessageToWX.Req 的 scene 成员,如果 scene 填 WXSceneSession,那么消息会发送至微信的会话内。如果 scene 填 WXSceneTimeline,那么消息会发送至朋友圈。scene 默认值为 WXSceneSession。

5.接收微信的请求及返回值

发送分享请求后,想知道请求的返回结果,需要下面3步操作:
a. 在你的包名相应目录下新建一个 wxapi 目录,并在该 wxapi 目录下新增一个 WXEntryActivity 类,该类继承自 Activity(例如应用程序的包名为 com.xu.sharetime,则新添加的类如下图所示)



并在 manifest 文件里面加上exported、taskAffinity及launchMode属性,其中exported设置为true,taskAffinity设置为你的包名,launchMode设置为singleTask,例如:

<activity
    android:name=".wxapi.WXEntryActivity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:exported="true"
    android:taskAffinity="填写你的包名"
    android:launchMode="singleTask">
</activity>

b. 实现 IWXAPIEventHandler 接口,微信发送的请求将回调到 onReq 方法,发送到微信请求的响应结果将回调到 onResp 方法。
c. 在 WXEntryActivity 的onCreate方法中将接收到的 intent 及实现了 IWXAPIEventHandler 接口的对象传递给 IWXAPI 接口的 handleIntent 方法,示例如下图:

api.handleIntent(getIntent(), this);

应用请求微信的响应结果将通过 onResp 回调。

6.运行工程

运行工程,需要通过指定的.keystore来签名

signingConfigs {
    debug {
        storeFile file("../debug.keystore")
    }
}

注:这里和创建应用时的签名要保持一致,否则分享失败

本文参考微信开放平台移动应用开发:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Resource_Center_Homepage.html

相关文章

  • Android移动应用接入微信分享功能

    1.申请应用的AppID 移动应用要想接入微信分享功能,得先到微信开放平台创建并提交审核,只有审核通过的应用才能进...

  • Android应用接入微信分享

    最近项目中要接入微信分享,记录下接入流程 注册应用信息并下载必要工具 在微信开放平台注册应用信息 下载 签名生成工...

  • iOS-微信的登录与分享

    微信登录与分享微信开发平台-移动应用微信登录开发指南1、首先导入微信的SDK 5、向微信终端程序注册第三方应用,并...

  • 配置gradle使用release签名打包应用

    在接入微信SDK的时候,发现必须使用release打包才能正确的调起分享,支付,登录功能,而Android Stu...

  • 功能:微信分享至好友&朋友圈

    多数应用需要有微信分享的功能,一般是分享至好友或者是朋友圈。微信开放平台提供了接入微信分享的第三方SDK,...

  • 微信平台简介

    微信开放平台 移动应用网站应用第三方平台功能微信登录 微信支付 分享收藏微信登录N/A其他拉起小程序 图像识...

  • App分享微信小程序

    《微信官方文档》 移动应用分享功能支持小程序类型分享,要求发起分享的App与小程序属于同一微信开放平台帐号。支持分...

  • Android APP内直接调起微信小程序

    Android应用一般通过点击链接,再调起微信小程序,现在需要在Android应用内,通过一个点击事件,直接进入微...

  • 接入微信移动应用所需资料

    注册微信开放平台账号所需信息: 注册邮箱: 真实姓名: 身份证号: 微信号: 手机号: 联系地址: 注意:建议使用...

  • cordova app 微信支付 登陆 分享

    有关微信的登陆、支付、分享等功能必须要微信开发平台申请好自己的账号 申请账号 创建应用这里创建自己的移动应用 拿到...

网友评论

      本文标题:Android移动应用接入微信分享功能

      本文链接:https://www.haomeiwen.com/subject/aijwtrtx.html