Flutter如何集成Android版微信SDK

在Flutter项目中集成Android版微信SDK时遇到了一些问题,具体如下:

  1. 如何在pubspec.yaml中正确配置微信SDK的依赖?是否需要手动下载aar文件?
  2. 微信SDK的初始化应该放在哪里?是否需要单独处理Android原生的Application类?
  3. 调用微信登录或分享时,Flutter端如何与Android原生代码交互?有没有推荐的插件或方法?
  4. 微信回调Activity的配置需要注意哪些事项?AndroidManifest.xml中需要添加哪些必要声明?
  5. 调试时出现WXApi not registered错误,可能是什么原因导致的?

希望有经验的朋友能帮忙解答,谢谢!


更多关于Flutter如何集成Android版微信SDK的实战教程也可以访问 https://www.itying.com/category-92-b0.html

2 回复

在Flutter中集成Android版微信SDK步骤如下:

  1. 添加依赖

    • android/app/build.gradle的dependencies中添加:
    implementation 'com.tencent.mm.opensdk:wechat-sdk-android:+'
    
  2. 配置AndroidManifest.xml

    • 添加权限:
    <uses-permission android:name="android.permission.INTERNET"/>
    
    • 注册WXEntryActivity:
    <activity
        android:name=".wxapi.WXEntryActivity"
        android:exported="true"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
    
  3. 创建wxapi目录

    • android/app/src/main/java/<你的包名>/下创建wxapi文件夹
    • 新建WXEntryActivity.java,继承WeChat回调类
  4. 使用flutter_wechat插件(推荐)

    • 在pubspec.yaml中添加:
    dependencies:
      flutter_wechat: ^2.0.0
    
    • 通过插件封装的方法调用登录/分享功能
  5. 初始化SDK

    await FlutterWechat.registerApp(
      appId: "你的微信AppID",
      universalLink: "iOS通用链接" //Android可忽略
    );
    

记得在微信开放平台申请AppID,并配置正确的应用签名。

更多关于Flutter如何集成Android版微信SDK的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中集成Android版微信SDK,可以通过以下步骤实现:

1. 添加依赖

android/app/build.gradledependencies 中添加:

implementation 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.0'

2. 配置AndroidManifest.xml

android/app/src/main/AndroidManifest.xml 中添加权限和微信Activity:

<uses-permission android:name="android.permission.INTERNET" />

<activity
    android:name=".wxapi.WXEntryActivity"
    android:exported="true"
    android:label="@string/app_name"
    android:taskAffinity="你的包名"
    android:launchMode="singleTop" />

3. 创建WXEntryActivity

android/app/src/main/java/你的包名/wxapi/ 目录下创建 WXEntryActivity.java

package 你的包名.wxapi;

import android.app.Activity;
import android.os.Bundle;
import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 处理微信回调
    }

    @Override
    public void onReq(BaseReq req) {}

    @Override
    public void onResp(BaseResp resp) {
        // 处理微信返回结果
        // 可通过MethodChannel将结果传递到Flutter
    }
}

4. 注册到微信

在MainActivity中初始化微信API:

public class MainActivity extends FlutterActivity {
    private IWXAPI api;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        api = WXAPIFactory.createWXAPI(this, "你的微信AppID");
        api.registerApp("你的微信AppID");
    }
}

5. 创建Flutter插件

使用MethodChannel建立通信:

class WeChat {
  static const MethodChannel _channel = MethodChannel('wechat');

  static Future<void> registerApp(String appId) async {
    await _channel.invokeMethod('registerApp', {'appId': appId});
  }

  static Future<void> shareText(String text) async {
    await _channel.invokeMethod('shareText', {'text': text});
  }
}

注意事项:

  • 在微信开放平台申请AppID
  • 包名必须与注册时一致
  • 签名需与微信平台登记一致
  • 处理不同回调类型(登录、分享、支付等)

完成以上步骤后,即可在Flutter中调用微信SDK功能。

回到顶部