Flutter版微信SDK.WeChat SDK for flutter.

Overview

Fluwx

pub package Build status

logo

中文请移步此处

What's Fluwx

Fluwx is flutter plugin for WeChatSDK which allows developers to call
WeChatSDK native APIs.

Join QQ Group now: 892398530。

Capability

  • Share images, texts, music and so on to WeChat, including session, favorite and timeline.
  • Payment with WeChat.
  • Get auth code before you login in with WeChat.
  • Launch mini program in WeChat.
  • Subscribe Message.
  • Just open WeChat app.
  • Launch app From wechat link.

Preparation

Fluwx is good but not God. You'd better read official documents before integrating Fluwx. Then you'll understand how to generate Android signature, what's universal link for iOS, how to add URL schema for iOS and so on.

Watch Charged Video

Install

Add the following dependencies in your pubspec.yaml file:

Fluwx with pay:

dependencies:
  fluwx: ^${latestVersion}

pub package

Fluwx without pay:

dependencies:
  fluwx_no_pay: ^${latestVersion}

pub package

NOTE: Never forget to replace ^${latestVersion} with actual version.

Register WxAPI

Register your app via fluwx if necessary.

registerWxApi(appId: "wxd930ea5d5a228f5f",universalLink: "https://your.univerallink.com/link/");

The param universalLink only works with iOS. You can read this document to learn how to create universalLink. You can also learn how to add URL schema, how to add LSApplicationQueriesSchemes in your iOS project. This is essential.

For Android, you shall know to how generate signature for your app in this page. And you have to understand the difference between debug signature and release signature. Once the signature is incorrect, then you'll get errCode = -1.

Capability Document

For more capabilities, you can read the public functions of fluwx.

QA

These questions maybe help

Donate

Buy the writer a cup of coffee。

Subscribe Us On WeChat

subscribe

LICENSE

Copyright 2018 OpenFlutter Project

Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements.  See the NOTICE file distributed with this work for
additional information regarding copyright ownership.  The ASF licenses this
file to you under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License.  You may obtain a copy of
the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
License for the specific language governing permissions and limitations under
the License.
Comments
  • flutter下载编译后就出错

    flutter下载编译后就出错

    你我是用fluwx^1.0.4 提示我gradle提升到3.4.1后又提示我gradle-wrapper提升到gradle-5.1.1 这些都做完以后 编译说 Error running Gradle: ProcessException: Process "F:\example\android\gradlew.bat" exited abnormally:

    Configure project :app WARNING: API 'variant.getMergeAssets()' is obsolete and has been replaced with 'variant.getMergeAssetsProvider()'. It will be removed at the end of 2019. For more information, see https://d.android.com/r/tools/task-configuration-avoidance. To determine what is calling variant.getMergeAssets(), use -Pandroid.debug.obsoleteApi=true on the command line to display more information. WARNING: API 'variantOutput.getProcessResources()' is obsolete and has been replaced with 'variantOutput.getProcessResourcesProvider()'. It will be removed at the end of 2019. For more information, see https://d.android.com/r/tools/task-configuration-avoidance. To determine what is calling variantOutput.getProcessResources(), use -Pandroid.debug.obsoleteApi=true on the command line to display more information. Command: F:\example\android\gradlew.bat app:properties

    Please review your Gradle project setup in the android/ folder. 我已经修改过

    这是我的build.gradle buildscript { ext.kotlin_version = '1.3.41' repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'http://maven.aliyun.com/nexus/content/groups/public' } }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
    

    }

    allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'http://maven.aliyun.com/nexus/content/groups/public' } } }

    opened by ynmiximixi 61
  • 有用户反馈Android 13登录不了的问题,还有人有这样的问题吗?

    有用户反馈Android 13登录不了的问题,还有人有这样的问题吗?

    有不少用户反应Android13的手机登录不上(典型的如:vivo的V2231A机器)。手里没有这几个设备,没法调试。还有人有这样的问题吗?

    从用户截的几个图来看: 能拉起微信,然后微信还有个转圈的loading,接着不知道是微信退出了,还是微信返回到了App,留在App的界面上,没有任何的提示信息。。

    bug help wanted 
    opened by zeewell 46
  • Android 支付没有唤起微信客户端,但返回结果为 true,iOS 报异常“PlatformException(wechat not installed, wechat not installed, null)”。

    Android 支付没有唤起微信客户端,但返回结果为 true,iOS 报异常“PlatformException(wechat not installed, wechat not installed, null)”。

    Code

            final result = await fluwx.pay(
              appId: trade['appid'] as String,
              partnerId: trade['mch_id'] as String,
              prepayId: trade['prepay_id'] as String,
              packageValue: 'Sign=WXPay',
              nonceStr: trade['nonce_str'] as String,
              timeStamp: (DateTime.now().millisecondsSinceEpoch / 1000).floor(),
              sign: trade['sign'] as String,
            );
            TblFactory().getLogger('wechat').fine(result);
    

    具体参数值见下面的日志里。

    Log

    Android:

    I/flutter (12431): TBLSERV 2018-10-26T16:36:00.423 FINE    request: GET /pay/wechat/trade {orderId: 51}
    I/flutter (12431): TBLSERV 2018-10-26T16:36:01.345 FINE    response: 200 {code: 0, message: , data: {trade: {appid: wxe1a7f5b2cf4d029b, attach: , code_url: , mch_id: 1517478831, mweb_url: , nonce_str: vF44Qzurrw39LW8Q, prepay_id: wx26163602136841f0d079597f0564687436, result_code: SUCCESS, return_code: SUCCESS, return_msg: OK, sign: 0651D2EFC734C39629AEC106B4855CCC, trade_type: APP}}}
    D/MicroMsg.SDK.WXMsgImplComm(12431): ignore wechat app signature validation
    I/MicroMsg.SDK.WXApiImplV10(12431): sendReq, req type = 5
    D/MicroMsg.SDK.MMessageAct(12431): send, targetPkgName = com.tencent.mm, targetClassName = com.tencent.mm.plugin.base.stub.WXPayEntryActivity
    I/Timeline(12431): Timeline: Activity_launch_request time:370466278
    D/MicroMsg.SDK.MMessageAct(12431): send mm message, intent=Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXPayEntryActivity (has extras) }
    I/flutter (12431): WECHAT  2018-10-26T16:36:01.417 FINE    {platform: android, result: true}
    I/MicroMsg.SDK.WXApiImplV10(12431): handleIntent, cmd = 5
    E/tag     (12431): heeeeee
    

    iOS:

    [VERBOSE-2:shell.cc(181)] Dart Error: Unhandled exception:
    PlatformException(wechat not installed, wechat not installed, null)
    #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:551:7)
    #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:279:18)
    <asynchronous suspension>
    #2      pay (package:fluwx/src/fluwx_iml.dart:160:25)
    <asynchronous suspension>
    #3      _BodyState._payByWechat.<anonymous closure> (file:///Users/jagger/projects/tangbole/app/lib/components/shop/order_screen.dart:110:30)
    <asynchronous suspension>
    #4      payWechatAppTradeParamsActionCreator.<anonymous closure> (file:///Users/jagger/projects/tangbole/app/lib/actions/pay.dart:42:41)
    <asynchronous suspension>
    #5      thunkMiddleware (package:redux_thunk/redux_thunk.dart:45:11)
    #6      Store._createDispatchers.<anonymous closure> (package:redux/src/store.dart:238:43)
    #7      LoggingMiddleware.call (package:redux_logging/redux_logging.dart:120:9)
    #8      Store._createDispatchers.<anonymous closure> (package:redux/src/store.dart:238:43)
    #9      Store.dispatch (package:redux/src/store.dart:250:20)
    #10     _BodyState._payByWechat (file:///Users/jagger/projects/tangbole/app/lib/components/shop/order_screen.dart:107:18)
    #11     _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)
    #12     _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:562:30)
    #13     GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
    #14     TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
    #15     TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:175:7)
    #16     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:315:9)
    #17     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)
    #18     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)
    #19     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:143:19)
    #20     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
    #21     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
    #22     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64:7)
    #23     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48:7)
    #24     _invoke1 (dart:ui/hooks.dart:153:13)
    #25     _dispatchPointerDataPacket (dart:ui/hooks.dart:107:5)
    
    
    duplicate 
    opened by jaggerwang 30
  • Flutter 1.17.0 iOS 编译失败

    Flutter 1.17.0 iOS 编译失败

    === BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Release === Undefined symbols for architecture arm64: "OBJC_CLASS$_PayReq", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXChooseInvoiceReq", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_OpenWebviewReq", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_SendAuthReq", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXChooseCardReq", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_AddCardToWXCardPackageReq", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXCardItem", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXAppExtendObject", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXMiniProgramObject", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXFileObject", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXEmoticonObject", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXVideoObject", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_SendAuthResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_WXMediaMessage", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_GetMessageFromWXReq", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_WXLaunchMiniProgramReq", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXApi", referenced from: objc-class-ref in fluwx(FluwxPlugin.o) objc-class-ref in fluwx(WXApiRequestHandler.o) (maybe you meant: OBJC_CLASS$_WXApiRequestHandler) "OBJC_CLASS$_WXImageObject", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_LaunchFromWXReq", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_PayResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_ShowMessageFromWXReq", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_WXSubscribeMsgReq", referenced from: objc-class-ref in fluwx(FluwxPlugin.o) "OBJC_CLASS$_SendMessageToWXReq", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXInvoiceAuthInsertResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_WXOpenBusinessWebViewResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_WXLaunchMiniProgramResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_WXChooseInvoiceResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_WXChooseCardResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_AddCardToWXCardPackageResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_WXMusicObject", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WXSubscribeMsgResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_SendMessageToWXResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_WXWebpageObject", referenced from: objc-class-ref in fluwx(WXApiRequestHandler.o) "OBJC_CLASS$_WechatAuthSDK", referenced from: objc-class-ref in fluwx(FluwxAuthHandler.o) "OBJC_CLASS$_WXNontaxPayResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) "OBJC_CLASS$_WXOpenBusinessWebViewReq", referenced from: objc-class-ref in fluwx(FluwxPlugin.o) "OBJC_CLASS$_WXPayInsuranceResp", referenced from: objc-class-ref in fluwx(FluwxResponseHandler.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

    opened by cv0cv0 18
  • Xcode12 模拟器无法运行

    Xcode12 模拟器无法运行

    ld: in /Users/mac/xxxx/ios/Pods/WechatOpenSDK_Fuck/OpenSDK1.9.2/libWeChatSDK.a(WechatAuthSDK.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/mac/xxxxx/ios/Pods/WechatOpenSDK_Fuck/OpenSDK1.9.2/libWeChatSDK.a' for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) note: Using new build system note: Building targets in parallel note: Planning build note: Analyzing workspace note: Constructing build description note: Build preparation complete

    opened by ghost 16
  • 安卓-微信授权登录,一闪而过,无法登录

    安卓-微信授权登录,一闪而过,无法登录

    Describe the bug 点击微信登录,跳转到微信,显示正在登录中,一两秒后又返回到App了,weChatResponseEventHandler 没有调用 图像

    To Reproduce 启动时日志:

    
     fluwx.registerWxApi(appId: Constant.weChatID, universalLink: Constant.universalLink);
      fluwx.weChatResponseEventHandler.listen((event) {
      
      });
    
    
    D/MicroMsg.SDK.WXMsgImplComm(10751): check signature:308202eb30820254a00302010202044d36f7a4300d06092a864886f70d01010505003081b9310b300906035504061302383631123010060355040813094775616e67646f6e673111300f060355040713085368656e7a68656e31353033060355040a132c54656e63656e7420546563686e6f6c6f6779285368656e7a68656e2920436f6d70616e79204c696d69746564313a3038060355040b133154656e63656e74204775616e677a686f7520526573656172636820616e6420446576656c6f706d656e742043656e7465723110300e0603550403130754656e63656e74301e170d3131303131393134333933325a170d3431303131313134333933325a3081b9310b300906035504061302383631123010060355040813094775616e67646f6e673111300f060355040713085368656e7a68656e31353033060355040a132c54656e63656e7420546563686e6f6c6f6779285368656e7a68656e2920436f6d70616e79204c696d69746564313a3038060355040b133154656e63656e74204775616e677a686f7520526573656172636820616e6420446576656c6f706d656e742043656e7465723110300e0603550403130754656e63656e7430819f300d06092a864886f70d010101050003818d0030818902818100c05f34b231b083fb1323670bfbe7bdab40c0c0a6efc87ef2072a1ff0d60cc67c8edb0d0847f210bea6cbfaa241be70c86daf56be08b723c859e52428a064555d80db448cdcacc1aea2501eba06f8bad12a4fa49d85cacd7abeb68945a5cb5e061629b52e3254c373550ee4e40cb7c8ae6f7a8151ccd8df582d446f39ae0c5e930203010001300d06092a864886f70d0101050500038181009c8d9d7f2f908c42081b4c764c377109a8b2c70582422125ce545842d5f520aea69550b6bd8bfd94e987b75a3077eb04ad341f481aac266e89d3864456e69fba13df018acdc168b9a19dfd7ad9d9cc6f6ace57c746515f71234df3a053e33ba93ece5cd0fc15f3e389a3f365588a9fcb439e069d3629cd7732a13fff7b891499
    D/MicroMsg.SDK.WXMsgImplComm(10751): pass
    2
    D/MicroMsg.SDK.WXApiImplV10(10751): registerApp, appId = wx302961d20177bd6b
    D/MicroMsg.SDK.WXApiImplV10(10751): register app com.liuxue.wrongset.app
    D/MicroMsg.SDK.MMessage(10751): send mm message, intent=Intent { act=com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER (has extras) }, perm=com.tencent.mm.permission.MM_MESSAGE
    

    执行 fluwx.sendWeChatAuth(scope: "snsapi_userinfo", state: "wechat_sdk_demo_test"); 的日志

    D/MicroMsg.SDK.WXMsgImplComm(10751): check signature:308202eb30820254a00302010202044d36f7a4300d06092a864886f70d01010505003081b9310b300906035504061302383631123010060355040813094775616e67646f6e673111300f060355040713085368656e7a68656e31353033060355040a132c54656e63656e7420546563686e6f6c6f6779285368656e7a68656e2920436f6d70616e79204c696d69746564313a3038060355040b133154656e63656e74204775616e677a686f7520526573656172636820616e6420446576656c6f706d656e742043656e7465723110300e0603550403130754656e63656e74301e170d3131303131393134333933325a170d3431303131313134333933325a3081b9310b300906035504061302383631123010060355040813094775616e67646f6e673111300f060355040713085368656e7a68656e31353033060355040a132c54656e63656e7420546563686e6f6c6f6779285368656e7a68656e2920436f6d70616e79204c696d69746564313a3038060355040b133154656e63656e74204775616e677a686f7520526573656172636820616e6420446576656c6f706d656e742043656e7465723110300e0603550403130754656e63656e7430819f300d06092a864886f70d010101050003818d0030818902818100c05f34b231b083fb1323670bfbe7bdab40c0c0a6efc87ef2072a1ff0d60cc67c8edb0d0847f210bea6cbfaa241be70c86daf56be08b723c859e52428a064555d80db448cdcacc1aea2501eba06f8bad12a4fa49d85cacd7abeb68945a5cb5e061629b52e3254c373550ee4e40cb7c8ae6f7a8151ccd8df582d446f39ae0c5e930203010001300d06092a864886f70d0101050500038181009c8d9d7f2f908c42081b4c764c377109a8b2c70582422125ce545842d5f520aea69550b6bd8bfd94e987b75a3077eb04ad341f481aac266e89d3864456e69fba13df018acdc168b9a19dfd7ad9d9cc6f6ace57c746515f71234df3a053e33ba93ece5cd0fc15f3e389a3f365588a9fcb439e069d3629cd7732a13fff7b891499
    D/MicroMsg.SDK.WXMsgImplComm(10751): pass
    I/MicroMsg.SDK.WXApiImplV10(10751): sendReq, req type = 1
    D/MicroMsg.SDK.MMessageAct(10751): send, targetPkgName = com.tencent.mm, targetClassName = com.tencent.mm.plugin.base.stub.WXEntryActivity
    I/Timeline(10751): Timeline: Activity_launch_request time:28392359 intent:Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXEntryActivity (has extras) }
    D/MicroMsg.SDK.MMessageAct(10751): send mm message, intent=Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXEntryActivity (has extras) }
    

    Which version of Fluwx do you use? fluwx: 2.6.2,项目暂时没有接入空安全,使用的旧的版本

    Which device do you run on 红米5Plus, Android 7.1.2

    Which Flutter do you use?

    rsf@rsfdeMac-mini ios % flutter doctor        
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, 1.22.4, on macOS 11.2.3 20D91 darwin-x64, locale
        zh-Hans-CN)
     
    [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    [✓] Xcode - develop for iOS and macOS (Xcode 12.4)
    [!] Android Studio (version 4.1)
        ✗ Flutter plugin not installed; this adds Flutter specific functionality.
        ✗ Dart plugin not installed; this adds Dart specific functionality.
    [✓] VS Code (version 1.52.1)
    [✓] Proxy Configuration
    [✓] Connected device (1 available)
    
    ! Doctor found issues in 1 category.
    
    opened by paintingStyle 16
  • 微信分享后闪退,提示找不到 WXEntryActivity

    微信分享后闪退,提示找不到 WXEntryActivity

    Caused by: java.lang.ClassNotFoundException: Didn't find class "XXXX.wxapi.WXEntryActivity" on path: DexPathList[[zip file "/data/app/com.xingerzhi.zhiya2-PPNTlZlEOLE3Jbwvj4xZxw==/base.apk", zip file "/system/framework/org.apache.http.legacy.jar"],nativeLibraryDirectories=[/data/app/XXXX-PPNTlZlEOLE3Jbwvj4xZxw==/lib/arm64, /data/app/XXXX-PPNTlZlEOLE3Jbwvj4xZxw==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]]

    opened by luowuzhe23 12
  • 在执行下载操作后Auth登录不会进入回调

    在执行下载操作后Auth登录不会进入回调

    Describe the bug 在使用flutter_downloader下载后,经常会出现登录无回调,重新启动App才会恢复正常。偶尔下载对回调也没有影响。 断点进入了handleAuthResponse方法并执行了channel?.invokeMethod("onAuthResponse", result)语句,channel实例非空,但并未回调到fluwx_iml.dart的_handler方法。

    Log D/MicroMsg.SDK.WXMsgImplComm(25395): ignore wechat app signature validation I/MicroMsg.SDK.WXApiImplV10(25395): sendReq, req type = 1 D/MicroMsg.SDK.MMessageAct(25395): send, targetPkgName = com.tencent.mm, targetClassName = com.tencent.mm.plugin.base.stub.WXEntryActivity I/Timeline(25395): Timeline: Activity_launch_request time:267121126 intent:Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXEntryActivity (has extras) } D/MicroMsg.SDK.MMessageAct(25395): send mm message, intent=Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXEntryActivity (has extras) } I/MicroMsg.SDK.WXApiImplV10(25395): handleIntent, cmd = 1 D/ViewContentFactory(25395): initViewContentFetcherClass I/ContentCatcher(25395): ViewContentFetcher : ViewContentFetcher D/ViewContentFactory(25395): createInterceptor took 1ms

    To Reproduce Steps to reproduce the behavior:

    1. 注册微信
    2. 微信登录
    3. 下载文件
    4. 退出登录
    5. 微信登录无回调

    Expected behavior 我想知道是什么问题导致的

    **Flutter Version: 1.9.1+hotfix.6 • channel stable

    Testing Platform: Android

    opened by ozyl 12
  • 支付成功监听不到回调

    支付成功监听不到回调

    之前是好的,更新了sdk到1.22.4,现在不管支付成功还是取消支付都拿不到回调。Android端

    > flutter doctor
    [√] Flutter (Channel stable, 1.22.4, on Microsoft Windows [Version 10.0.18363.1198], locale zh-CN)
    [√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    [√] Android Studio (version 4.0)
    [√] VS Code (version 1.50.0)
    [√] Connected device (1 available)
    
    D/MicroMsg.SDK.WXMsgImplComm(28479): pass
    D/MicroMsg.SDK.WXMsgImplComm(28479): check signature:308202eb30820254a00302010202044d36f7a4300d06092a864886f70d01010505003081b9310b300906035504061302383631123010060355040813094775616e67646f6e673111300f060355040713085368656e7a68656e31353033060355040a132c54656e63656e7420546563686e6f6c6f6779285368656e7a68656e2920436f6d70616e79204c696d69746564313a3038060355040b133154656e63656e74204775616e677a686f7520526573656172636820616e6420446576656c6f706d656e742043656e7465723110300e0603550403130754656e63656e74301e170d3131303131393134333933325a170d3431303131313134333933325a3081b9310b300906035504061302383631123010060355040813094775616e67646f6e673111300f060355040713085368656e7a68656e31353033060355040a132c54656e63656e7420546563686e6f6c6f6779285368656e7a68656e2920436f6d70616e79204c696d69746564313a3038060355040b133154656e63656e74204775616e677a686f7520526573656172636820616e6420446576656c6f706d656e742043656e7465723110300e0603550403130754656e63656e7430819f300d06092a864886f70d010101050003818d0030818902818100c05f34b231b083fb1323670bfbe7bdab40c0c0a6efc87ef2072a1ff0d60cc67c8edb0d0847f210bea6cbfaa241be70c86daf56be08b723c859e52428a064555d80db448cdcacc1aea2501eba06f8bad12a4fa49d85cacd7abeb68945a5cb5e061629b52e3254c373550ee4e40cb7c8ae6f7a8151ccd8df582d446f39ae0c5e930203010001300d06092a864886f70d0101050500038181009c8d9d7f2f908c42081b4c764c377109a8b2c70582422125ce545842d5f520aea69550b6bd8bfd94e987b75a3077eb04ad341f481aac266e89d3864456e69fba13df018acdc168b9a19dfd7ad9d9cc6f6ace57c746515f71234df3a053e33ba93ece5cd0fc15f3e389a3f365588a9fcb439e069d3629cd7732a13fff7b891499
    D/MicroMsg.SDK.WXMsgImplComm(28479): pass
    I/MicroMsg.SDK.WXApiImplV10(28479): sendReq, req type = 5
    D/MicroMsg.SDK.MMessageAct(28479): send, targetPkgName = com.tencent.mm, targetClassName = com.tencent.mm.plugin.base.stub.WXPayEntryActivity
    I/Timeline(28479): Timeline: Activity_launch_request time:1404392380 intent:Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXPayEntryActivity (has extras) }
    D/MicroMsg.SDK.MMessageAct(28479): send mm message, intent=Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXPayEntryActivity (has extras) }
    I/flutter (28479): true
    W/ActivityThread(28479): handleWindowVisibility: no activity for token android.os.BinderProxy@30bd75c
    I/MicroMsg.SDK.WXApiImplV10(28479): handleIntent, cmd = 5
    D/ViewContentFactory(28479): initViewContentFetcherClass
    I/ContentCatcher(28479): ViewContentFetcher : ViewContentFetcher
    D/ViewContentFactory(28479): createInterceptor took 0ms
    
      //监听对象
      var listen;
    
      @override
      void initState() {
        weChatListen();
        super.initState();
      }
    
      @override
      void dispose() {
        weChatListenCancel();
        super.dispose();
      }
    
     //调起微信支付监听
      weChatListen() {
        print("开启微信监听");
        listen = weChatResponseEventHandler.listen((event) {
          switch (event.errCode.toString()) {
            case '0':
              paySuccess(oid);
              PublicWidget.showToast('支付成功');
              break;
            case '-1':
              PublicWidget.showToast('支付错误');
              break;
            case '-2':
              print('已取消支付');
              PublicWidget.showToast('已取消支付');
              break;
            default:
              PublicWidget.showToast('订单支付失败');
          }
        });
      }
    
      //销毁微信支付监听
      weChatListenCancel() {
        listen?.cancel();
      }
    
    opened by Wiki1991 11
  • Android 11分享图片失败

    Android 11分享图片失败

    Android 11要求使用FileProdider的方式分享图片,FluwxShareHandlerEmbedding这个文件,else那个地方使用的是分享byte

    `private fun shareImage(call: MethodCall, result: MethodChannel.Result) { launch { val map: Map<String, Any> = call.argument("source") ?: mapOf() val sourceImage = WeChatFile.createWeChatFile(map, assetFileDescriptor) val thumbData = readThumbnailByteArray(call)

            val sourceByteArray = sourceImage.readByteArray()
            val imageObject = when {
                sourceByteArray.isEmpty() -> {
                    WXImageObject()
                }
                sourceByteArray.size > 500 * 1024 -> {
                    WXImageObject().apply {
                        if (supportFileProvider && targetHigherThanN) {
                            setImagePath(getFileContentUri(sourceByteArray.toCacheFile(context, sourceImage.suffix)))
                        } else {
                            if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
                                setImagePath(sourceByteArray.toExternalCacheFile(context, sourceImage.suffix)?.absolutePath)
                            } else {
                                permissionHandler?.requestStoragePermission()
                            }
                        }
                    }
                }
                else -> {
                    WXImageObject(sourceByteArray)
                }
            }
            val msg = WXMediaMessage()
            msg.mediaObject = imageObject
            msg.thumbData = thumbData
    
            msg.description = call.argument(keyDescription)
    
            val req = SendMessageToWX.Req()
            setCommonArguments(call, req, msg)
            req.message = msg
    
            sendRequestInMain(result, req)
        }
    }`
    

    改成这样能分享成功 sourceByteArray.size > 500 * 1024 -> { WXImageObject().apply { if (supportFileProvider && targetHigherThanN) { setImagePath(getFileContentUri(sourceByteArray.toCacheFile(context, sourceImage.suffix))) } else { if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { setImagePath(sourceByteArray.toExternalCacheFile(context, sourceImage.suffix)?.absolutePath) } else { permissionHandler?.requestStoragePermission() } } } } else -> { // WXImageObject(sourceByteArray) //把上面的拿下来 WXImageObject().apply { if (supportFileProvider && targetHigherThanN) { setImagePath(getFileContentUri(sourceByteArray.toCacheFile(context, sourceImage.suffix))) } else { if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { setImagePath(sourceByteArray.toExternalCacheFile(context, sourceImage.suffix)?.absolutePath) } else { permissionHandler?.requestStoragePermission() } } } }

    希望大佬升级一下插件

    Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 1.22.3, on Mac OS X 10.15.5 19F101, locale en-CN)

    [✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3) [✓] Xcode - develop for iOS and macOS (Xcode 12.0.1) [✓] Android Studio (version 4.0) [✓] Connected device (1 available)

    opened by larryluo1212 11
  • 通过分享的小程序 拉起未启动的App,白屏,如果拉已启动的app没问题

    通过分享的小程序 拉起未启动的App,白屏,如果拉已启动的app没问题

    通过分享的小程序 拉起未启动的App,白屏,如果拉已启动的app没问题

    做了一下调试,发现拉起了微信的activity,执行了onCreate,然后报错了, 所以也没有回到MainActivity,所以就白屏了

    我在onCreate 里做了个判断 可以临时解决一下 ,但是没有通用的方案好处理

    如果没有flutter activity,就主动跳到主main val activity = FluwxRequestHandler.getRegistrar()?.activity() if(activity !is Activity) { val intent:Intent = Intent(); intent.setAction("com.zhou.money_topic.main"); startActivity(intent); finish(); }

    opened by hjc22 11
  • 微信订阅问题

    微信订阅问题

    大佬 提个bug 我在测试中 发现微信订阅结果中只返回了openid、templateId、action、reserved、scene几个字断,并没有errorCode和errorStr

    WeChatSubscribeMsgResponse这个model在解析到时候,就报错了

    fluwx版本: 3.10.0 android系统

    应改为 WeChatSubscribeMsgResponse.fromMap(Map map){ openid = map['openid']; templateId = map['templateId']; action = map['action']; reserved = map['reserved']; scene = map['scene']; }

    opened by chen412115 4
  • 安卓手机掉起微信分享功能时进入微信请稍后之后闪退回app(跳转)

    安卓手机掉起微信分享功能时进入微信请稍后之后闪退回app(跳转)

    //设备:一加5t // 版本:android 10 //真机log如下 D/MicroMsg.SDK.WXMsgImplComm: pass D/MicroMsg.SDK.WXApiImplV10: wxSdkVersion = 671095893 D/MicroMsg.SDK.WXMsgImplComm: check signature:308202eb30820254a00302010202044d36f7a4300d06092a864886f70d01010505003081b9310b300906035504061302383631123010060355040813094775616e67646f6e673111300f060355040713085368656e7a68656e31353033060355040a132c54656e63656e7420546563686e6f6c6f6779285368656e7a68656e2920436f6d70616e79204c696d69746564313a3038060355040b133154656e63656e74204775616e677a686f7520526573656172636820616e6420446576656c6f706d656e742043656e7465723110300e0603550403130754656e63656e74301e170d3131303131393134333933325a170d3431303131313134333933325a3081b9310b300906035504061302383631123010060355040813094775616e67646f6e673111300f060355040713085368656e7a68656e31353033060355040a132c54656e63656e7420546563686e6f6c6f6779285368656e7a68656e2920436f6d70616e79204c696d69746564313a3038060355040b133154656e63656e74204775616e677a686f7520526573656172636820616e6420446576656c6f706d656e742043656e7465723110300e0603550403130754656e63656e7430819f300d06092a864886f70d010101050003818d0030818902818100c05f34b231b083fb1323670bfbe7bdab40c0c0a6efc87ef2072a1ff0d60cc67c8edb0d0847f210bea6cbfaa241be70c86daf56be08b723c859e52428a064555d80db448cdcacc1aea2501eba06f8bad12a4fa49d85cacd7abeb68945a5cb5e061629b52e3254c373550ee4e40cb7c8ae6f7a8151ccd8df582d446f39ae0c5e930203010001300d06092a864886f70d0101050500038181009c8d9d7f2f908c42081b4c764c377109a8b2c70582422125ce545842d5f520aea69550b6bd8bfd94e987b75a3077eb04ad341f481aac266e89d3864456e69fba13df018acdc168b9a19dfd7ad9d9cc6f6ace57c746515f71234df3a053e33ba93ece5cd0fc15f3e389a3f365588a9fcb439e069d3629cd7732a13fff7b891499 D/MicroMsg.SDK.WXMsgImplComm: pass I/MicroMsg.SDK.Util: getFileSize with content url I/MicroMsg.SDK.WXApiImplV10: sendReq, req type = 2 I/MicroMsg.SDK.WXApiImplV10: getTokenFromWX token is wx154f4a47d0b75c63-476709645-6081516049085 D/MicroMsg.SDK.MMessageAct: send, targetPkgName = com.tencent.mm, targetClassName = com.tencent.mm.plugin.base.stub.WXEntryActivity, launchMode = 2 I/MicroMsg.SDK.MMessageAct: sendUsingPendingIntent D/MicroMsg.SDK.MMessageAct: send mm message, intent=Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXEntryActivity (has extras) } I/MicroMsg.SDK.MMessageAct: sendUsingPendingIntent onSendFinished resultCode: 0, resultData: null D/ViewRootImpl[MainActivity]: windowFocusChanged hasFocus=false inTouchMode=true D/DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@52260ea[MainActivity] D/ViewRootImpl[MainActivity]: windowFocusChanged hasFocus=true inTouchMode=true W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@3f5b907 I/MicroMsg.SDK.WXApiImplV10: handleIntent, cmd = 2 D/ViewRootImpl[MainActivity]: windowFocusChanged hasFocus=false inTouchMode=true D/DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@52260ea[MainActivity] D/ViewRootImpl[MainActivity]: windowFocusChanged hasFocus=true inTouchMode=true

    Which version of Fluwx do you use? Tell us the version of your current Fluwx.

    Which device do you run on Tell us the device, like BLA-00 and the OS is Android 10.

    Which Flutter do you use?

    Run flutter doctor and paste the output here.

    opened by liujinwang223 5
  • 图片分享不显示图片

    图片分享不显示图片

    截图保存图片分享后,分享好友只能在弹窗里看到缩略图,分享出去后,聊天窗口没有图片,而分享到朋友圈时,直接没有图片显示 fluwx_no_pay: ^3.9.0 手机设备:小米 9 Pro 系统版本:10

    ` LogUtils.d('filePath=$filePath');

    WeChatShareImageModel model;
    if (filePath != null) {
      model = WeChatShareImageModel(WeChatImage.file(File(filePath)),
          title: title, description: decs, scene: scene);
    } else if (url != null) {
      model = WeChatShareImageModel(WeChatImage.network(url),
          title: title, description: decs, scene: scene);
    } else if (asset != null) {
      model = WeChatShareImageModel(WeChatImage.asset(asset),
          title: title, description: decs, scene: scene);
    } else {
      throw Exception("缺少图片资源信息");
    }
    shareToWeChat(model);
    

    图片路径不为空:filePath=/data/user/0/com.xxx.xxxx/cache2022-09-27T18:32:19.253188.jpg 也没有报什么错误信息: MicroMsg.SDK.WXMsgImplComm(31489): pass I/MicroMsg.SDK.Util(31489): getFileSize with content url I/MicroMsg.SDK.WXApiImplV10(31489): sendReq, req type = 2 I/MicroMsg.SDK.WXApiImplV10(31489): getTokenFromWX token is wx6c3dc97df5f86f36--1809121114-1664274739379 D/MicroMsg.SDK.MMessageAct(31489): send, targetPkgName = com.tencent.mm, targetClassName = com.tencent.mm.plugin.base.stub.WXEntryActivity, launchMode = 2 I/MicroMsg.SDK.MMessageAct(31489): sendUsingPendingIntent D/MicroMsg.SDK.MMessageAct(31489): send mm message, intent=Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXEntryActivity (has extras) } I/MicroMsg.SDK.MMessageAct(31489): sendUsingPendingIntent onSendFinished resultCode: 0, resultData: null `

    opened by wangpingtaohn 1
Releases(3.9.0)
Owner
OpenFlutter
Make it easier.让Flutter更简单。
OpenFlutter
Woocommerce SDK for Flutter. The Complete Woo Commerce SDK for Flutter.

woocommerce Woocommerce SDK for Flutter. Getting Started Add the package to your pubspec.yaml and import. import 'package:woocommerce/woocommerce.dart

RAY 105 Dec 6, 2022
Stream Chat official Flutter SDK. Build your own chat experience using Dart and Flutter.

Official Flutter packages for Stream Chat Quick Links Register to get an API key for Stream Chat Flutter Chat SDK Tutorial Chat UI Kit Sample apps Thi

Stream 659 Dec 25, 2022
Flutter-Udemy - - A Udemy clone using Flutter sdk and dart.

udemy_clone A new Flutter project. Below are some images : Getting Started This project is a starting point for a Flutter application. A few resources

Priyam Soni 3 Apr 24, 2022
The LoginRadius Flutter SDK will let you integrate LoginRadius' customer identity platform with your Flutter application(s).

TODO: Put a short description of the package here that helps potential users know whether this package might be useful for them. Features TODO: List w

Ahmed Yusuf 4 Feb 3, 2022
Flutter Version Management: A simple cli to manage Flutter SDK versions.

fvm Flutter Version Management: A simple cli to manage Flutter SDK versions. Features: Configure Flutter SDK version per project or globally Ability t

于飞 242 Dec 18, 2022
[Flutter SDK V.2] - Youtube Video is a Flutter application built to demonstrate the use of Modern development tools with best practices implementation like Clean Architecture, Modularization, Dependency Injection, BLoC, etc.

[Flutter SDK V.2] - Youtube Video is a Flutter application built to demonstrate the use of Modern development tools with best practices implementation like Clean Architecture, Modularization, Dependency Injection, BLoC, etc.

R. Rifa Fauzi Komara 17 Jan 2, 2023
This is the UI of Furniture App made using Flutter SDK. The original design was made by someone else in dribble and I tried to create the screens of that UI using Flutter

Furniture App - Responsive Flutter UI Watch it on YouTube Responsive UI Fetch Data From API Custom Loading Indicator Packages we are using: flutter_sv

null 6 Dec 3, 2022
a flutter socket client sdk for ezyfox-server

ezyfox-server-flutter-client flutter client for ezyfox server Architecture Offical documentation https://youngmonkeys.org/ezyfox-flutter-client-sdk/ P

Young Monkeys 44 Dec 13, 2022
Avo Inspector SDK for Flutter

Avo Inspector for Flutter @Hacktoberfest Happy Hacktoberfest! This repo is participating, check out the issues we've prepared for you If you need any

Avo 10 Oct 25, 2022
Flutter guide + SDK. Check Community repository for common information.

freeRASP for Flutter freeRASP for Flutter is a part of security SDK for the app shielding and security monitoring. Learn more about provided features

Talsec 63 Dec 26, 2022
Bug reporting SDK for Flutter apps.

Shake for Flutter Flutter plugin for Shake. How to use Install Shake Add Shake to your pubspec.yaml file. dependencies: shake_flutter: ^15.0.0 I

Shake 13 Oct 18, 2022
RelatedDigital Flutter SDK

Table of Contents Introduction Requirements Installation Platform Integration Android iOS Usage Initializing Push Notifications Requesting Permission

Related Digital 34 Jun 26, 2022
Replaces Flutter's bundled Dart SDK with the macOS arm64 version

This script replaces Flutter's bundled Dart SDK with the macOS arm64 version Get

null 21 Oct 9, 2022
A flutter plugin to get facebook deep links and log app events using the latest Facebook SDK to include support for iOS 14

Facebook Sdk For Flutter LinkedIn GitHub facebook_sdk_flutter allows you to fetch deep links, deferred deep links and log facebook app events. This wa

Saad Farhan 23 Dec 17, 2022
Todo is an Simple Task Management App coded using Dart which is a peogramming language for Flutter SDK(2.5) supports Null Safety 📑🚩

Todo ?? ?? ?? Introduction Todo is an Simple Task Management App coded using Dart which is a peogramming language for Flutter SDK(2.5) supports Null S

navee-ramesh 6 Nov 5, 2022
A flutter plugin to get android version(SDK INT).

get_sdk_int A new flutter plugin project. Getting Started This project is a starting point for a Flutter plug-in package, a specialized package that i

jinyus 0 Dec 28, 2021
A convenience wrapper for building Flutter apps with PDFTron mobile SDK.

About PDFTron Flutter PDFTron's Flutter PDF library brings smooth, flexible, and stand-alone document viewing and editing solutions using Flutter code

PDFTron Systems Inc. 157 Dec 26, 2022
Expandable bottom app bar widget for Flutter SDK

Expandable bottom app bar widget for Flutter SDK

melvspace 106 Dec 28, 2022
Widgets for Digital Health - Use the Flutter(tm) SDK to build healthcare apps fast.

Faiadashu™ FHIRDash — Widgets for Digital Health Mission Build beautiful healthcare apps fast — use the Flutter™ SDK and follow the HL7® FHIR® standar

Tilo 22 Dec 19, 2022