React Native:实现操作系统剪贴板Clipboard访问

更新:11-12 名人轶事 我要投稿 纠错 投诉

为了保证程序不会因为Gradle版本不同而产生问题,于是创建了Gradle Wrapper。它的作用是将项目绑定到Gradle版本。当我们导入项目时,会自动下载对应的Gradle版本。

不过,还有,蛋。问题来了

这导致我们在打开其他项目时,如果当前电脑没有为该项目配置Gradle版本,我们就需要下载对应的Gradle版本。不过Gradle的二进制包比较大,而且链接是国外服务器,在国内下载起来比较困难。这时候就会出现下面的情况。

你不知道AS是否死了,或者它是否真的在后台做着什么……要么你必须耐心等待,要么你可以直接关闭AS,而且必须强制关闭。这是非常不仁慈的。其实之所以卡在这里,是因为Gradle包是后台从服务器下载的。这个Gradle包的大小通常有几十兆字节。如果网络环境不是很好,可能需要很长时间才能完成。显然,我们没有那么多时间花在这里,我们需要想办法解决。

解决方式一

当你安装Android Studio和SDK时,你肯定会安装至少一个Gradle。此时可以通过新建项目来查询Gradle版本。

还需要知道本地Gradle版本路径,打开设置界面

有几个参数需要记录,与SDK相匹配。导入项目中编译的SDK 版本也必须存在于本地计算机上。

记住这些参数,然后将要导入的工程的参数更改为与当前的参数一致,工程就可以正常导入了。

我们来看看如何修改:

- xxx-project/.idea/gradle.xml 文件:

添加或修改-xxx-project/gradle/wrapper/gradle-wrapper.properties文件:

distributionUrl=https://services.gradle.org/distributions/gradle-previous gradleVersion-all.zip

- xxx-project/build.gradle 文件:

Android Plugin Version前面的classpath‘com.android.tools.build:gradle:’(这是整个项目的配置)

- xxx-project/app/build.gradle 文件:

修改编译SDK版本和构建工具版本参数。 (这是单个模块的配置,项目中的每个模块都需要修改)修改完成后就可以正常导入了。

如果电脑断网,可以直接导入工程,但如果工程无法正常运行,仍然需要修改这些参数才能正常编译。

解决方式二

上述主要问题是Gradle版本无法下载。我们可以单独下载指定的Gradle版本。

首先可以查看项目依赖的gradle版本。

QQ20160905-4@2x.png 然后找到对应的版本下载。

https://pan.baidu.com/s/1pLEkm4F#path=%252F

Windows默认将下载的文件放在C:Usersxxx.gradlewrapperdists目录下

Paste_Image.pngmac 默认位于/Users/apple/.gradle/wrapper/dists/

粘贴_图像.png

我们之前了解过TextInput 组件。有时我们需要在TextInput 组件中复制或粘贴一些文本。

React Native 为开发人员提供了剪贴板API。 Clipboard组件可以读写iOS和Android剪贴板中的内容。目前仅支持获取或存储字符串。

主要方法

静态getString()

获取剪贴板的文本内容并返回一个Promise(后面会介绍)

您可以通过以下方式调用它。

async _getContent() { var content=wait Clipboard.getString(); }

静态setString(content: 字符串)

设置剪贴板的文本内容。您可以通过以下方式调用它。

_setContent() { Clipboard.setString("hello world"); }

官方例子

代码比较简单,直接展示官方例子:

从"react"导入React,{Component};

进口{

应用程序注册表,

样式表,

看法,

文本,

剪贴板

来自"react-native";

类AwesomeProject 扩展组件{

状态={

content: "内容将出现在这里"

};

//异步函数箭头函数不再需要绑定this

_setClipboardContent=async()={

Clipboard.setString("Hello World");

尝试{

var content=等待Clipboard.getString();

this.setState({内容});

} 捕获(e) {

this.setState({content:e.message});

}

};

使成为() {

return (点击将“Hello World”放入剪贴板{this.state.content});

}

}

AppRegistry.registerComponent("AwesomeProject", ()=AwesomeProject);运行结果:

用户评论

繁华若梦

这篇文章肯定讲的是如何用 React Native app 来操作手机的剪贴板吧?

    有8位网友表示赞同!

反正是我

终于可以分享代码片段了,想做个功能需要 copy-paste 的。

    有11位网友表示赞同!

一尾流莺

我一直好奇怎么在跨平台的环境下访问剪贴板啊,这篇文章应该能解答我的疑问。

    有18位网友表示赞同!

站上冰箱当高冷

React Native 开发越来越方便了,现在连剪贴板都能玩儿的了吗?

    有10位网友表示赞同!

打个酱油卖个萌

我现在正在做个项目需要用到剪贴板功能,看看这篇文章能不能给我一些灵感。

    有13位网友表示赞同!

弃我者亡

学习新知识很棒!希望这篇文章能讲得详细一些。

    有9位网友表示赞同!

柠栀

我以前想学 React Native 的时候就遇到这样的问题了,不知道怎么操作剪贴板,现在终于有解决方法了?

    有15位网友表示赞同!

仰望幸福

移动端开发真是门槛越来越低,以前还要担心各种平台的差异性。

    有6位网友表示赞同!

抚笙

这篇文章应该会介绍几种访问剪贴板的方法吧?希望能有一个比较简单实用的方案。

    有19位网友表示赞同!

人心叵测i

剪贴板上内容的安全问题也很关键啊,希望这篇文章也能提及相关防护措施。

    有14位网友表示赞同!

眉黛如画

看标题就知道了,要操作剪贴板一定是要用到原生模块的呀!

    有6位网友表示赞同!

龙卷风卷走爱情

这个功能在 iOS 和 Android 上肯定是不一样的吧?作者会不会讲到它们的差异性呢?

    有13位网友表示赞同!

不识爱人心

开发过程中的小细节总是让人头疼,希望这篇文章能解答我的困扰。

    有20位网友表示赞同!

搞搞嗎妹妹

学习 React Native 的过程中确实有很多坑,但是只要掌握了这些技巧,就能开发更加便捷的 App 吧!

    有12位网友表示赞同!

荒野情趣

这个分享感觉很有用,我最近也在尝试做一些移动端应用。

    有11位网友表示赞同!

盲从于你

以后可以用这篇博客来参考,操作剪贴板就不用再愁啦!

    有17位网友表示赞同!

减肥伤身#

React Native 的能力真的越来越强大了啊!

    有12位网友表示赞同!

别伤我i

如果这篇文章能解释得详细一点,那将会非常有帮助。

    有13位网友表示赞同!

﹎℡默默的爱

期待这篇博客能分享一些实用的代码和技巧!

    有16位网友表示赞同!

【React Native:实现操作系统剪贴板Clipboard访问】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:追寻简单而充实的生活方式 下一篇:探索100种生命终结的可能性:全面剖析生死奥秘