使用 React Native 在 Android 中对特定后缀名的文件进行关联和导入导出
关联特定文件后缀名
关键词:intent 注册 和 官方文档中 Linking 一节
- 在
AndroidManifest.xml
中将 MainActivity 的 launchMode 改为singleTask
-
增加合适的
intent-filter
如下<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="file" /> <data android:host="*" /> <data android:mimeType="*/*" /> <data android:pathPattern=".*\\.fileExtension" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <!--注意下面是 content --> <data android:scheme="content" /> <data android:host="*" /> <data android:mimeType="*/*" /> <data android:pathPattern=".*\\.fileExtension" /> </intent-filter>
-
假如你的文件名包含很多
.
,比如abc.mobile.version.backup.fileExtension
,由于 pathPattern 匹配模式的原因,目前找到的解决方式是加一堆这样的东西:<data android:pathPattern=".*\\..*\\.fileExtension" /> <data android:pathPattern=".*\\..*\\..*\\.fileExtension" /> <data android:pathPattern=".*\\..*\\..*\\..*\\.fileExtension" /> <data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.fileExtension" /> <data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.fileExtension" />
导出
这个比较简单,不多说了。请求权限后用 lib copy 就行了。
导入
导入也很简单,麻烦的是想要在微信或文件管理器中打开文件时,app 出现在选择列表里。
为此我看了一堆 intent activity 相关的文档,然后发现之前忽略的 Linking 就足够用了。。。。只是 facebook 的文档写的很有迷惑性,里面用了一堆 url 让你觉得它只是 http 之类的东西。
事实上,只需要做好文件后缀关联,RN 内部已经实现了 intent 相关的处理,在你的应用相对简单没有一堆 Activity 时,使用 Linking 已经足够了。完全可以拿到 file://
或者 content://
相关的内容。而且无需费力再去思考 onResume 怎么拿到新的 intent 内容
之后只需要使用 lib 对得到的 url 进行处理就 OK 了。
「手动狗头」
梦里一路飞奔
Angular Laravel React Native
77 声望
1 粉丝
推荐阅读
[译] isArray 背后发生了什么?
看到一篇文章Arrays, symbols, and realms,简单搜了一下,关于判断数组的文章基本上从 typeof、instanceof、Object.prototype.toString.call(obj) === '[objectg Array]''讲到 isArray就完了。但是它实际上干了...
twohappy阅读 1.2k
程序员英语学习指南
动机为什么程序员要学习英语?工作:我们每天接触的代码都是英文的、包括很多技术文档也是英文的学习:最新最前沿的技术最开始都是只有English版本就业:学好英语让你的就业范围扩大到全球,而不只限于国内目标读...
九旬赞 7阅读 706
安卓逆向之破解某成人APP播放次数限制
某成人水果APP非VIP用户存在播放次数限制,每天只能播放3次。超过3次需要购买VIP。 由于过于贫穷,于是抽空,对其安卓APP进行了逆向分析,最终成功破解了其播放次数限制。
悖论赞 3阅读 1.5k评论 3
ReactNative0.71正式版发布,Ts作为首要开发语言
时隔近4个月的时间,ReactNative带来了0.71版本的更新,这速度对比隔壁Flutter不得不说是真的有的慢。这个版本的更新的内容还是比较重磅和突破性的,主要体现在如下几点:编程语法默认改为TypeScript使用Flexbox ...
似水流年赞 2阅读 794
这一次,解决Flutter Dialog的各种痛点!
4.0版本做了重大调整,迁移请参照: SmartDialog 3.x 迁移 4.0本文内容已更新,文中内容及其代码皆为4.0用法前言Q:你一生中闻过最臭的东西,是什么?A:我那早已腐烂的梦。兄弟萌!!!我又来了!这次,我能自信...
小呆呆666赞 1阅读 3.5k
网易云音乐开源全链路埋点方案-曙光埋点(dawn)
网易云音乐开源了曙光埋点 dawn,一个跨多端的全链路埋点解决方案,旨在构造一个完美的数据理想国。曙光埋点创造性的提出了埋点虚拟树(VTree),并在此基础上实现了诸多能力,解决大前端侧埋点困难、精度差、不...
云音乐技术团队赞 2阅读 462
uni-app中安卓包检查更新、新版本下载、下载进度条显示功能实现
如果想要做一个app的话,可以有很多种选择方案,uni-app是其中的一个性价比高一些(坑多一些)的方案。本文记录一下,uni-app打安卓包以后,需要检查并下载更新,且显示进度条的功能。
水冗水孚赞 2阅读 834
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。