当前位置: 首页 > news >正文

flutter分享到支付宝

应该很少有人做分享到支付宝吧,哈哈。 太小众了。 

我是用的这个: https://pub.dev/packages/alipay_share_supplyuuu

但是它写得有毛病,连个 example 都懒得写啊这人。 

他的问题主要在android里面,先把它写的kotlin给删掉,完全没有用啊。 

再把他写的 FlutterAppopenPlugin改成新的写法, 他这个老的了, 不能用

package com.yunupay.apopen;import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.widget.Toast;import android.content.Context;import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;
import io.flutter.plugin.common.PluginRegistry.Registrar;import com.alipay.share.sdk.openapi.APImageObject;
import com.alipay.share.sdk.openapi.APWebPageObject;
import com.alipay.share.sdk.openapi.IAPApi;
import com.alipay.share.sdk.openapi.APTextObject;
import com.alipay.share.sdk.openapi.APMediaMessage;
import com.alipay.share.sdk.openapi.SendMessageToZFB;
import com.alipay.share.sdk.openapi.APAPIFactory;import java.util.HashMap;
import java.util.Map;/*** FlutterNativeLogPlugin*/
@SuppressWarnings("unchecked")
public class FlutterApopenPlugin implements FlutterPlugin, MethodCallHandler {private IAPApi _api;private Context mContext = null;/*** Plugin registration.*/@Overridepublic void onAttachedToEngine(FlutterPluginBinding binding) {if (null == mContext) {mContext = binding.getApplicationContext();final MethodChannel channel = new MethodChannel(binding.getBinaryMessenger(), "com.sunpub/apopen");channel.setMethodCallHandler(new FlutterApopenPlugin());}}@Overridepublic void onDetachedFromEngine(FlutterPluginBinding binding) {}@Overridepublic void onMethodCall(MethodCall call, Result result) {if (call.method.equals("registerAp")) {registerAP(call, result);}else if (call.method.equals("isAPAppInstalled")) {isAPAppInstalled(result);}else if (call.method.equals("shareText")) {sendTextMessage(call, result);}else if (call.method.equals("shareImageData")) {sendImageData(call, result);}else if (call.method.equals("shareImageUrl")) {sendImageUrl(call, result);}else if (call.method.equals("shareWebUrl") || call.method.equals("shareWebData")) {sendWebPageWithImg(call, result);} else {result.notImplemented();}}private void registerAP(MethodCall call, Result result) {String appId = call.argument("appId");_api = APAPIFactory.createZFBApi(mContext ,appId,false);boolean isSupport = _api.isZFBSupportAPI();System.out.print(isSupport);Map resultMap = new HashMap();resultMap.put("platform","Android");resultMap.put("result",isSupport);result.success(resultMap);}private void isAPAppInstalled(Result result) {boolean isInstalled = _api.isZFBAppInstalled();System.out.print(isInstalled);result.success(isInstalled);}//文本信息分享private void sendTextMessage(MethodCall call, Result result) {//初始化一个APTextObject对象APTextObject textObject = new APTextObject();textObject.text = call.argument("text");//用APTextObject对象初始化一个APMediaMessage对象APMediaMessage mediaMessage = new APMediaMessage();mediaMessage.mediaObject = textObject;//构造一个ReqSendMessageToZFB.Req req = new SendMessageToZFB.Req();req.message = mediaMessage;//调用api接口发送消息到支付宝boolean boolResult = _api.sendReq(req);Map resultMap = new HashMap();resultMap.put("platform","Android");resultMap.put("result",boolResult);result.success(resultMap);}// 传图片数据private void sendImageData(MethodCall call, Result result) {byte[] imageByte = call.argument("imageData");Bitmap bmp = BitmapFactory.decodeByteArray(imageByte,0,imageByte.length);APImageObject imageObject = new APImageObject(bmp);APMediaMessage mediaMessage = new APMediaMessage();mediaMessage.mediaObject = imageObject;SendMessageToZFB.Req req = new SendMessageToZFB.Req();req.message = mediaMessage;req.transaction = buildTransaction("image");bmp.recycle();//调用api接口发送消息到支付宝boolean boolResult = _api.sendReq(req);Map resultMap = new HashMap();resultMap.put("platform","Android");resultMap.put("result",boolResult);result.success(resultMap);}// 传图片地址private void sendImageUrl(MethodCall call, Result result) {APImageObject imageObject = new APImageObject();imageObject.imageUrl = call.argument("imageUrl");APMediaMessage mediaMessage = new APMediaMessage();mediaMessage.mediaObject = imageObject;SendMessageToZFB.Req req = new SendMessageToZFB.Req();req.message = mediaMessage;req.transaction = buildTransaction("image");//调用api接口发送消息到支付宝boolean boolResult = _api.sendReq(req);Map resultMap = new HashMap();resultMap.put("platform","Android");resultMap.put("result",boolResult);result.success(resultMap);}// 传网页,图片缩略图为urlprivate void sendWebPageWithImg(MethodCall call, Result result) {APWebPageObject webPageObject = new APWebPageObject();webPageObject.webpageUrl = call.argument("wepageUrl");APMediaMessage webMessage = new APMediaMessage();webMessage.title = call.argument("title");webMessage.description = call.argument("desc");webMessage.mediaObject = webPageObject;if(call.method.equals("shareWebData")) {webMessage.thumbData = call.argument("imageData");}else  {webMessage.thumbUrl = call.argument("imageUrl");}SendMessageToZFB.Req webReq = new SendMessageToZFB.Req();webReq.message = webMessage;webReq.transaction = buildTransaction("webpage");//调用api接口发送消息到支付宝boolean boolResult = _api.sendReq(webReq);Map resultMap = new HashMap();resultMap.put("platform","Android");resultMap.put("result",boolResult);result.success(resultMap);}private String buildTransaction(final String type) {return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();}}

http://www.dtcms.com/a/312045.html

相关文章:

  • Linux进程控制核心:创建·等待·终止·替换
  • Qt 信号和槽正常连接返回true,但发送信号后槽函数无响应问题【已解决】
  • 深入解析Java Stream Sink接口
  • Design Compiler:Milkyway库的创建与使用
  • 1-7〔 OSCP ◈ 研记 〕❘ 信息收集▸主动采集E:SMB基础
  • 硬件-可靠性学习DAY1——系统可靠性设计指南:从原理到实践
  • Markdown 中的图表 Mermaid 与 classDiagram
  • Thread 中的 run() 方法 和 start() 方法的
  • 笔记:C语言中指向指针的指针作用
  • MQTT协议测试环境部署
  • 错误: 找不到或无法加载主类 原因: java.lang.ClassNotFoundException
  • (nice!!!)(LeetCode 每日一题) 2561. 重排水果 (哈希表 + 贪心)
  • UNet改进(29):记忆增强注意力机制在UNet中的创新应用-原理、实现与性能提升
  • 【嵌入式汇编基础】-ARM架构基础(三)
  • 动态规划解最长回文子串:深入解析与优化问题
  • 【redis】基于工业界技术分享的内容总结
  • JS的作用域
  • 第15届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2024年1月28日真题
  • sqli-labs:Less-20关卡详细解析
  • MFC 实现托盘图标菜单图标功能
  • 中州养老Day02:服务管理护理计划模块
  • 中之人模式下的虚拟主持人:动捕设备与面捕技术的协同驱动
  • 2025系规教材改革后,论文怎么写?
  • 错误处理_IncompatibleKeys
  • 在Linux上对固态硬盘进行分区、格式化和挂载的步骤
  • CH32V单片机启用 FPU 速度测试
  • MVVM——ArkUI的UI开发模式
  • 使用Python开发Ditto剪贴板数据导出工具
  • 使用C++实现日志(2)
  • MCP终极指南 - 从原理到实战(基础篇)