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

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.xdnf.cn/news/16961.html

相关文章:

  • 模拟激光相机工作站版本6.0 5.2.32 6.0.44 6.031 5.2.20
  • LeetCode 每日一题 2025/7/28-2025/8/3
  • gcc-arm-none-eabi安装后,找不到libgcc.a的拉置
  • Java基础暑假每日一练
  • 集成电路学习:什么是CMSIS微控制器软件接口标准
  • Json Jsoncpp
  • sqli-labs:Less-20关卡详细解析
  • Gossip 协议
  • 用 Qt 打造优雅的密码输入框:添加右侧眼睛图标切换显示
  • 关于Web前端安全防御之点击劫持的原理及防御措施
  • OpenCV HSV与RGB颜色模型的区别
  • Elasticsearch+Logstash+Filebeat+Kibana单机部署
  • 论文笔记:Bundle Recommendation and Generation with Graph Neural Networks
  • OpenCV 全解读:核心、源码结构与图像/视频渲染能力深度对比
  • 电力系统分析笔记:发电机与变压器的数学建模与运行状态详解
  • 图漾AGV行业常用相机使用文档
  • Unity —— Android 应用构建与发布​
  • 边缘计算优化!陌讯轻量化模型实现路面裂缝误检率↓78%
  • Java函数式编程之【Stream终止操作】【中】【通用约简reduce】
  • 机器学习sklearn:聚类
  • Python编程基础与实践:Python函数编程入门
  • 通过解决docker network connect实现同一个宿主机不同网络的容器间通信
  • Flutter dart运算符
  • synchronized 深度剖析:从语法到锁升级的完整演进
  • 第13届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2022年1月22日真题
  • shell脚本的语法使用及例题
  • Java函数式编程之【Stream终止操作】【下】【三】【收集操作collect()与分组分区】【下游收集器】
  • 一个可以检测本机的字节顺序,并对任意数据进行字节顺序的反转操作的代码。
  • 热能小车cad【12张】三维图+设计说明书
  • 解决IDEA无法克隆GitHub上的工程的问题