Flutter 项目实战 截图分享到微信|QQ|微博 十二

/ 截图功能演示 /

/ 跨进程通信案例 /

调用三方app进行支付 : 支付宝支付、微信支付、银行app支付 ........

调用三方app进行分享 : 微信分享、QQ分享、微博分享、钉钉分享、分享邮箱、打印、蓝牙.......

调用三方app进行登录 : 微信登录、QQ登录、微博登录、支付宝登录、Twitter登录(海外)、谷歌登录(海外)、FaceBook登录(海外) .......

/ 应用进程间通信 (IPC) /

       进程间通信 (Interprocess communication) 就是不同进程之间传递或交换信息 。进程间是靠共享内存区域来进行彼此的互相访问 。IPC (Interprocess communication) 是一组编程接口,程序员能够协调不同的进程,能在一个操作系统里同时运行,并相互传递、交换信息。程序能够在同一时间里处理许多用户的要求。因为即使只有一个用户发出要求,也可能导致一个操作系统中多个进程的运行,进程之间必须互相通话。

IPC 方法 :

1、管道(PIPE)消息排队 (Message Queues) / 消息队列就是消息的一个链表,它允许一个或多个进程向它写消息,一个或多个进程从中读消息。

2、 旗语 (信号量)

3、 共用内存 (message queues,semaphores and shared memory)/ 一个进程创建,其余进程对这块内存区进行读写。

4、套接字(Socket)/ 套接字是通信的基石,是支持TCP/IP协议的路通信的基本操作单元。可以将套接字看作不同主机间的进程进行双间通信的端点,它构成了单个主机内及整个网络间的编程界面。

 IPC 作用 :

1、进程间共享数据 / 进程操作共享数据

2、进程间数据传输 / 一个进程需要将它的数据发送给另一个进程

 3、通知事件 / 进程间发送通知消息 (例如: 子进程结束通知父进程)

 4、资源共享 / 多个进程之间共享同样的资源         

5、进程控制 / 一个进程对另外一个进程控制 (例如: 拦截进程的异常)             

/ Android 通信的几种方式 /

Bundle&Intent / 实现了parcelable接口 / 可以将数据存储在Bundle中传递数据

SharedPerference / 多个进程的应用,可以对磁盘里的同一个文件读写。

Activity /  需要指定的是要访问的Activity所对应的Action(字符串)。有些Activity还需要指定一个Uri(通过 Intent构造方法的第2个参数指定)

Content Provider / 在多个应用程序之间数据共享的方式(跨进程共享数据)

Broadcast /  广播是一种被动跨进程通讯的方式。程序向系统发送广播时,其他的应用程序只能被动地接收广播数据。

Messager / 使用Messenger为服务提供接口。定义一个MessengerService继承自Service,并在AndroidManifest.xml中声明并给一个进程名,使该服务成为一个单独的进程。

AIDL / AIDL是一种接口描述语言,通常用于进程间通信。它用于让某个Service与多个应用程序组件之间进行跨进程通信,从而可以实现多个应用程序共享同一个Service。

Socket / Socket 通信和 Binder 通信类似,也是一种 C/S 模型的通信方式

/  IOS 通信的几种方式 /

URL scheme /  应用A通过openURL的方法跳转到应用B ,  并且在URL种带上想要的参数 , 有点类似HTTP的get请求进行参数传递 。 

Keychain /  Keychain 安全的存储容器 (SQLite数据库) 。 

UIPasteBoard / uipasteboard剪切板功能 , 利用系统剪切板功能来实现的。

UIDocumentInteractionController / 贡献文档、文档预览、打印、发邮件等复制功能

AirDrop / APP之间文档和数据的分享

UIActivityViewController /  PP之间发送数据、分享数据和操作数据

APP Groups /  团队app开发 , app和extension共享读写空间, 实现数据共享

/ 监听手机系统剪切 /

Flutter工程 pubspec.yaml 文件下添加 flutter_screenshot_callback  依赖库配置 , 并执行flutter pub get 命令将依赖库导入到本地

 

import 'package:flutter/material.dart';
import 'package:flutter_screenshot_callback/flutter_screenshot_callback.dart';class TestScreenPage extends StatefulWidget {@override_MyAppState createState() => _MyAppState();
}class _MyAppState extends State<TestScreenPage> implements IScreenshotCallback {String _imagePath = 'Unknown';late ScreenshotCallback _screenshotCallback;@overridevoid initState() {super.initState();initCallback();}void initCallback() {_screenshotCallback = ScreenshotCallback();_screenshotCallback.startScreenshot();_screenshotCallback.setInterfaceScreenshotCallback(this);}@overridevoid dispose() {super.dispose();_screenshotCallback.stopScreenshot();}@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(backgroundColor: Colors.blue,appBar: AppBar(title: const Text('Plugin example app'),),body: Center(child: Text('Image path: $_imagePath\n'),),),);}@overridedeniedPermission() {print("没有权限");}@overridescreenshotCallback(String data) async {setState(() {_imagePath = data;});print('截图保存地址: ${'$data'.substring('$data'.indexOf('/'), '$data'.length)}');}
}

触发安卓手机音量 减号 和 熄屏键 实现截图 (我是在红米手机下实现的)

 

Android 手机打印的图片保存的地址

 

IOS 打印的图片保存的地址

IOSf截图保存地址: /private/var/mobile/Containers/
Data/Application/9381C8B1-71C7-4FEB-84F2-
7636CEFDD481/tmp/screen_shot.png

/ 微信分享 /

Flutter 工程 pubspec.yaml 添加 fluwx 插件配置 , 并执行 flutter pub get 命令加载依赖

微信开发者后台创建应用

IOS 配置参数

Android配置参数 

 应用创建成功后获取appid

IOS LSApplicationQueriesSchemes 白名单配置

IOS xcode里面配置applinks  生成universalLink

  

 配置AppId (Android/IOS) 和universalLink (IOS)

 手机截图微信分享

Android 11 手机 微信分享错误提示 : sendReq failed for wechat app signature check

在应用的AndroidManifest.xml添加如下<queries>标签 , 指定微信包名

/ QQ 分享 / 

Flutter 工程 pubspec.yaml 文件下配置 tencent_kit 依赖库配置 , 并执行flutter pub get 命令将依赖库导入到本地

腾讯应用开放平台

创建应用获取AppId 并配置

IOS LSApplicationQueriesSchemes 白名单配置 

 IOS xcode里面配置applinks  生成universalLink

build.gradle下配置appid

配置appid和 universalLink

实现截图分享到QQ

Android 11 手机 微信分享错误提示 : sendReq failed for wechat app signature check

在应用的AndroidManifest.xml添加如下<queries>标签 , 指定QQ包名

/ 微博分享 / 

flutter 工程 pubspec.yaml 添加 weibo_kit 依赖 , 并执行flutter pub get 命令将依赖库导入到本地

在添加依赖的过程中出现了下面的问题 , 这个问题没有得到解决 

我直接下载了weibo_kit源码工程到工程里面进行依赖

微博开发者平台

IOS 填写包名

Android填写包名、签名、下载地址

获取 appKey

  

IOS LSApplicationQueriesSchemes 白名单配置 

配置appKey和 universalLink

图片剪切并实现微博分享

 

/ pod install  github.com:443 /

github访问缓慢

主要原因github访问非常缓慢 , 执行 pod install 下载依赖无法顺利进行

找到电脑硬盘上的 .gitconfig 文件  

open ~/.gitconfig

替换github配置

在文件末尾添加

[url "https://github.com.cnpmjs.org/"]insteadOf = https://github.com/

下载案例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/253383.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

直接在屏幕上,选取区域进行截屏分享到QQ、微信

在手机屏幕上&#xff0c;选择某个区域进行截屏。 1&#xff0c;借用网络上一张图片&#xff0c;说明每个点的位置&#xff0c;主要是左上角和右下角这两个点。中间那块浅蓝色的就是我们的目标区域了 /*** 将一个view保存成图片* param view 传入的目标view* return*/public…

android qq悬浮窗口,qq悬浮窗口在哪里打开?怎么设置QQ悬浮窗?qq悬浮窗口设置方法分享...

QQ悬浮窗口在哪打开 qq悬浮 1.打开手机设置应用&#xff0c;点击进入设置界百面。 2.在设置应用中&#xff0c;选择“其他度应用管理”选问项。 3.打开选择答已经安装的应用&#xff0c;选择“QQ”。 4.点击“权限回管理”&#xff0c;进入权限管理界面。 5.点击“显示悬浮窗”…

qq三国行脚商脚本思路分享

qq三国行脚商玩法基于按键精灵脚本写作思路分享 欢迎和我一起学习讨论游戏脚本的写作过程游戏玩法简介脚本写作思路知易行难后续痛点和优化自我介绍后记 欢迎和我一起学习讨论游戏脚本的写作过程 你好呀&#xff01; 这是你第一次来到我的主页。如果你想学习如何使用按键精灵等…

QQ微信等分享链接时系统提取的标题和图片代码

有的时候&#xff0c;在我们写好网页后&#xff0c;需要通过QQ/微信等即时通讯工具分享出去&#xff0c;这时候&#xff0c;系统会提取网页的标题和图片&#xff0c;默认提取title和网页的第一张图片。 当然&#xff0c;我们也可以指定分享的文字和图片。以图片为例&#xff0…

远程屏幕共享软件哪个比较好用

我们远程开会需要共享屏幕来讨论会议内容&#xff0c;我们远程培训需要共享屏幕让学生一目了然自己要讲的内容&#xff1b;我们远程运维需要共享屏幕让工程师可以协同远程运维。那么共享屏幕软件哪个比较好用&#xff1f; 相信提到共享屏幕软件&#xff0c;我们首先想到的就是q…

QQ分享功能实现-Android

这篇主要介绍实现QQ的分享图片功能&#xff0c;这里用QQ官方提供的SDK。QQ的分享功能直接使用&#xff0c;不需要授权软件&#xff0c;所以比较方便。 一、准备工作 1、创建应用 腾讯QQ互联官网进行注册登录&#xff0c;并且创建应用管理&#xff0c;&#xff0c;获取到你的…

计算机桌面文件如何发送给qq好友,QQ怎么与好友分享屏幕 如何共享电脑屏幕给好友...

手机QQ有屏幕共享吗&#xff1f; 如果有 怎么共享呢 手机qq现在还有共享屏幕的功能对不起现在只有电脑版的才能共享屏幕 手机qq中的分享屏幕怎么用 还在为好友寻求帮助而烦恼吗&#xff1f;来试试屏幕分享吧&#xff0c;它可以让你的好友亲临其境的观看你的电脑屏幕发生的事情。…

解决QQ分享屏幕对方无法听到电脑系统声音的问题

0x00 方法一 也就是网上主流的通过设置立体声混音为默认设备&#xff0c;这种方法有弊端&#xff0c;只能实现以下两种效果&#xff1a; 1.能听到电脑系统声音&#xff0c;而人说话无声 2.电脑声音和人声都有&#xff0c;但是你会听到自己说话的回声。 话不多说&#xff0…

Web安全神器-Burpsuite社区版/专业版下载、安装及使用教程

一、Burpsuite下载 Burp Suite是进行Web应用安全测试的一个集成平台&#xff0c;无缝融合各种安全工具并提供全面的接口适配&#xff0c;支持完整的Web应用测试流程&#xff0c;从最初的映射和应用程序的攻击面分析到发现和利用安全漏洞等领域均适用&#xff0c;同时还可以做抓…

react学习

简介 起源于Facebook与传统mvc的关系&#xff1a;轻量级的视图层库&#xff0c;将视图抽象成组件 特点 声明式设计高效 通过虚拟dom&#xff0c;减少真实dom交互灵活 适配已知的库或框架jsx js语法扩展组件 代码可复用单向响应数据流 减少重复代码&#xff0c;比传统…

【C++】vector的使用

目录 1.什么是vector2.容量操作3.增删查改4.杨辉三角&#xff08;使用vector开辟二维数组&#xff09; 1.什么是vector vector就是一个动态顺序表&#xff0c;比起string&#xff0c;它不仅可以存储字符&#xff0c;还可以存储其他的内置类型以及自定义类型。 vector在使用时&…

Maven jar 包下载失败问题处理【配置Maven国内源】

前言 很多同学在Maven里下载一些依赖的时候&#xff0c;即下载【jar 包】的时候总是会出现一些问题&#xff0c;这里专门做一个教程讲解一下 其实这和你的Maven配置是有关系的&#xff0c;因为Maven是一个国际站点&#xff0c;它的仓库是在国外的&#xff0c;所以我们有时候在下…

易语言零基础新手入门系列教程 第一课

机器人小鑫易语言源码&#xff08;作业用&#xff09;&#xff1a; 机器人小鑫源码 - 第一课.zip 视频教程文字版&#xff1a; 新手学习易语言的几点建议 1、由浅入深、由易到难、循序渐进&#xff0c;切勿急功近利&#xff0c;想一步登天&#xff01; 这是学习的一般规…

是否想过中文编程呢?易语言使用的体验和感想

对于很多自以为英语不好就不能学好编程的童鞋来说&#xff0c;其实编程和英语真的不是那么的紧密&#xff0c;易语言可能是一种不错的选择。这里我们来体验一下&#xff0c;和其他语言做一下对比。 一、变量的声明 易语言中用ctrll和ctrlG来声明局部和全局变量&#xff0c;代码…

这次,易语言彻底“输了”,而另一新式中文编程却胜券在握

20多年来&#xff0c;饱受诟病的易语言 众多编程语言中&#xff0c;python、C、C语言、Java等&#xff0c;脱颖而出。但有一门冷门的编程语言&#xff0c; 大多数人可能听都没听过&#xff0c;它就是易语言。 什么是易语言啊&#xff1f;听起来好陌生。 笔者“深扒”了一下&…

易语言脚本开发入门教程

天蓝易语言脚本入门开发系列教程第1讲初识易语言 天蓝易语言脚本入门开发系列教程第2课简单控件变量 天蓝易语言脚本入门开发系列教程第3讲简单登录器制作 天蓝易语言脚本入门开发系列教程第4讲计算器实现 天蓝易语言脚本入门开发系列教程第5讲时钟随机数 天蓝易语言脚本入门开…

易语言学习笔记——基础篇

易语言学习笔记20180710 一、 易语言的数据类型可以分为基本数据类型和特殊数据类型 1. 其中基本数据类型分为&#xff1a; ① 数值型 ② 逻辑型 ③ 日期时间型 ④ 文本型 ⑤ 字节集型 ⑥ 子程序指针型 2. 然后基本数据类型中的数值类型有包含了&a…

易语言简介

易语言&#xff08;EPL&#xff09;是一门以中文作为程序代码编程语言&#xff0c;其以“易”著称&#xff0c;创始人为吴涛。易语言早期版本的名字为E语言。其最早的版本的发布可追溯至2000年9月11日。创造易语言的初衷是进行用中文来编写程序的实践&#xff0c;方便中国人以中…

“易语言.飞扬”十分钟入门教程

“易语言.飞扬”十分钟入门教程 作者&#xff1a;liigo 2007.1.1 原文链接&#xff1a;http://blog.csdn.net/liigo/archive/2007/01/01/1472077.aspx 转载必须注明出处&#xff1a;http://blog.csdn.net/liigo 第 1 分钟&#xff1a;序曲 第 2 分钟&#xff1a;“易语言.飞…

《MYSQL必知必会》读书笔记1

目录 行 主键 MYSQL工具 使用MYSQL 连接 检索数据 检索&#xff08;SELECT&#xff09; 限制结果&#xff08;LIMIT&#xff09; 排序检索&#xff08;ORDER BY&#xff09; 过滤数据&#xff08;WHERE&#xff09; 过滤数据&#xff08;AND、OR&#xff09; 通配符…