Flutter iOS 文本字符串在 2 个 Flutter 应用程序之间共享
Posted
技术标签:
【中文标题】Flutter iOS 文本字符串在 2 个 Flutter 应用程序之间共享【英文标题】:Flutter iOS text strings sharing between 2 Flutter applications 【发布时间】:2018-07-03 23:05:18 【问题描述】:我一直在寻找一种在我正在开发的两个 Flutter 应用程序之间共享文本字符串的方法。
经过几天的研究,我能够使用共享应用端的share
官方插件并使用Android 平台的Intent 过滤器接收文本/纯文本,在两个应用之间共享一段文本。从那时起,我一直在尝试在 iOS 上解决它。
有两个主要问题
应用 A 想要共享一段字符串数据,因此应用 B 必须显示在接收该数据的选项中,这里我的应用不在选项中。
如果数据与应用B共享,应用B将如何处理传入的数据。
我已经尝试了几个选项:
我。 URLLauncher 插件官方插件无法打开除了网页、短信之外的自定义 URL Scheme,
二。 ios 上的 share
插件无法在接收文本应用程序的选项中显示我的应用程序。我没有找到有关如何使我的应用显示为其他应用共享的文本接收器以及如何在接收器应用中处理传入文本的文档。
【问题讨论】:
【参考方案1】:要在您想要分享的选项中显示您的 iOS 应用,您可以使用适用于 android 和 iOS 的插件 uni_links。您可以定义一个自定义方案,然后触发您的应用程序。
设置一切,然后创建一个监听器:
import 'dart:async';
import 'dart:io';
import 'package:uni_links/uni_links.dart';
StreamSubscription _sub;
Future<Null> initUniLinks() async
// Attach a listener to the stream
_sub = getLinksStream().listen((String link)
// Parse the link and warn the user, if it is not correct
, onError: (err)
// Handle exception by warning the user their action did not succeed
);
// NOTE: Don't forget to call
_sub.cancel() in dispose()
【讨论】:
缺少关于如何启动其他应用程序 url 方案的文档,仅提及侦听和接收部分。应用 A 想要与应用 B 共享数据,应用 A 启动应用 B 的部分文档中缺少,文档仅显示如何处理或侦听传入的数据。 通过普通主题方案处理。如果您将方案定义为yourapp
和name
,则使用yourapp://name
调用它。这部分也可以帮助你理解它:android:scheme="https" android:host="[YOUR_HOST]"
.
我已经能够使用 URLLauncher 插件从其他应用程序打开它,也可以通过在 LSApplicationQueriesSchemes 中指定接收应用程序。以上是关于Flutter iOS 文本字符串在 2 个 Flutter 应用程序之间共享的主要内容,如果未能解决你的问题,请参考以下文章
Flutter — 文本为什么可以被编辑?如何自定义编辑的行为?
Flutter — 文本为什么可以被编辑?如何自定义编辑的行为?
Flutter图表库fl_chart的使用解析(二)-折线图