简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网
我猜去全部机翻+个人修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981
【之前我写过一些列关于expo和rn入门配置的东i西,大家可以点击这里查看:从零学习rn开发】
相关文章:
Expo大作战(一)--什么是expo,如何安装expo clinet和xde,xde如何使用
Expo大作战(二)--expo的生命周期,expo社区交流方式,expo学习必备资源,开发使用expo时关注的一些问题
Expo大作战(三)--针对已经开发过react native项目开发人员有针对性的介绍了expo,expo的局限性,开发时项目选型注意点等
Expo大作战(四)--快速用expo构建一个app,expo中的关键术语
Expo大作战(五)--expo中app.json 文件的配置信息
Expo大作战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式
Expo大作战(七)--expo如何使用Genymotion模拟器
Expo大作战(八)--expo中的publish以及expo中的link,对link这块东西没有详细看,大家可以来和我交流
接下来就开始撸码
使用app.json进行配置
app.json是配置应用程序中不属于代码的部分的前提。它位于package.json旁边项目的根目录下。它看起来像这样:{ "expo": { "name": "My app", "slug": "my-app", "sdkVersion": "25.0.0", "privacy": "public" } }app.json之前被称为exp.json,但为了与Create React Native App保持一致,它已被合并到一个文件中。如果您将应用程序从使用exp.json转换为app.json,则只需在app.json的根目录中添加一个“expo”键作为所有其他键的父项。
来自app.json的大多数配置都可以在运行时通过Expo.Constants.manifest从JavaScript代码访问。诸如密钥之类的敏感信息被删除。有关如何将任意配置数据传递到您的应用程序的信息,请参阅下面的“额外”键。
以下是app.json中“expo”键下可用的属性列表:
name -名称
必须的,您的应用程序的名称,因为它在expo和您的主屏幕上都显示为独立应用程序。
description--描述
简短描述您的应用是什么以及为什么它很棒。
slug
必须的。用于发布的友好网址名称。例如:expo.io/@your-username/slug。
privacy--隐私
公开或不公开。如果未提供,则默认为不公开。未来,私人将得到支持。未列出隐藏搜索结果的经验。有效值:'public','unlisted'
sdkVersion
必须的。expo sdkVersion运行该项目。这应该与package.json中指定的版本一致。
version
您的应用程序版本,可以使用您喜欢的任何版本控制方案。
platforms--平台
您的项目明确支持的平台。如果未指定,则默认为[“ios”,“android”]。
githubUrl
如果您想在Github上分享您的应用程序的源代码,请在此输入存储库的URL,并将其链接到您的expo项目页面。
orientation--方向
使用纵向或横向将您的应用锁定到特定的方向。默认为无锁。有效值:'默认','肖像','风景'
primaryColor
在Android上,这将决定多任务器中您的应用程序的颜色。目前这不在iOS上使用,但它可能在将来用于其他目的。 6个字符长的十六进制颜色字符串,例如:'#000000'
icon--图标
本地路径或远程网址映射到您的应用程序图标使用的图像。我们建议您使用1024x1024的png文件。此图标将显示在主屏幕上和expo应用程序中。
notification--通知
远程(推送)通知的配置。
- icon--图标
- 本地路径或远程网址作为图标用于推送通知的图像。 48x48 png灰度与透明度。
- color--颜色
- 当推送通知图像出现在通知托盘中时,颜色为浅色。 6个字符长的十六进制颜色字符串,例如:'#000000'
- androidMode
- 单独显示每个推送通知(默认)或折叠为一个(折叠)。有效值:'default','collapse'
- androidCollapsedTitle
- 如果androidMode设置为折叠,则此标题用于折叠的通知消息。例如:'#{unread_notifications}new interactions'。
loading--加载载
已删除:改为使用飞溅。用户在打开应用程序时看到的加载屏幕的配置,以及获取和缓存分发包和资产的过程。
- icon--图标
- 本地路径或远程URL到启动应用程序时显示的图像。图像大小和纵横比取决于您。必须是.png。
- exponentIconColor
- 如果没有图标,我们将显示expo标志。您可以选择白色和蓝色。有效值:'white','blue'
- exponentIconGrayscale
- 与exponentIconColor类似,但反指示它是灰度(1)还是不是(0)。[Similar to
exponentIconColor
but instead indicate if it should be grayscale (1
) or not (0
).]- backgroundImage--背景图
- 本地路径或远程URL到图像以填充加载屏幕的背景。图像大小和纵横比取决于您。必须是.png。
- backgroundColor--背景颜色
- 填充加载屏幕背景的颜色6个字符长的十六进制颜色字符串,例如:'#000000'
- hideExponentText
- 默认情况下,expo在加载屏幕底部显示一些文字。将其设置为true以禁用。
APPKEY
默认情况下,Expo将查找以AppRegistry注册为主要的应用程序。如果你想改变这个,你可以在这个属性中指定名字。
androidStatusBarColor
已过时。改用androidStatusBar。 6个字符长的十六进制颜色字符串,例如:'#000000'
androidStatusBar
Android状态栏的配置。
- barStyle
- 配置状态栏图标以使其具有浅色或深色。有效值:“light-content”,“dark-content"
- backgroundColor--背景颜色
- Android状态栏的配置。 6个字符长的十六进制颜色字符串,例如:'#000000'
androidShowExponentNotificationInShellApp
使用刷新按钮和调试信息向独立应用程序添加通知。
scheme--方案
仅限独立应用程序。链接到您的应用程序的URL模式。例如,如果我们将其设置为“demo”,then demo:// URLs would open your app when tapped. String beginning with a letter followed by any combination of letters, digits, ”+”, ”.” or ”-”
[仅限独立应用程序。链接到您的应用程序的URL模式。例如,如果我们将其设置为“演示”,则演示:// URL会在点按时打开您的应用。以字母开头的字符串,后跟字母,数字,“+”,“。”或“ - ”的任意组合]
entryPoint--入口点
您的主JavaScript文件的相对路径。
extra--额外
任何额外的领域,你想传递给你的经验。值可通过Expo.Constants.manifest.extra访问(阅读更多)
- rnCliPath
- packagerOpts
- ignoreNodeModulesValidation
- nodeModulesPath
IOS
仅限独立应用程序。 iOS独立应用程序特定配置
- bundleIdentifier
- iOS独立应用程序的包标识符。你做了它[You make it up],但它需要在App Store上是唯一的。看到这个StackOverflow的问题。适用于您的应用的iOS套件标识符表示法唯一名称。例如,host.exp.exponent,其中exp.host是我们的域名,Expo是我们的应用程序。
- buildNumber
- 内置iOS版独立应用的编号。必须是一个与Apple的CFBundleVersion格式相匹配的字符串。
- icon--图标
- 本地路径或图像的远程URL,用于iOS上您应用的图标。如果指定,则会覆盖顶层图标键。使用符合Apple界面指南的图标的1024x1024图标,包括颜色配置文件和透明度。expo将产生其他所需的尺寸。此图标将显示在主屏幕上和世博会应用程序中。
- merchantId--MERCHANTID
- 商家ID用于Apple Pay在您的独立应用程序中使用。
- appStoreUrl
- 如果您在那里部署了应用程序,则可以在Apple App Store上找到您的应用的URL。如果您的应用程序是公开的,这用于链接到您的expo项目页面上的商店页面。
- config--配置
- branch--分支
- 分支键挂钩分支连接服务。
- apiKey
- 您的分支API密钥
- usesNonExemptEncryption
- 将独立ipa的Info.plist中的ITSAppUsesNonExemptEncryption设置为给定的布尔值。
- googleMapsApiKey
- 适用于您的独立应用的Google地图iOS SDK密钥。
- googleSignIn
- Google Sign-In iOS SDK密钥适用于您的独立应用程序。
- reservedClientId
- 保留的客户端ID URL方案。可以在GoogeService-Info.plist中找到。
- isRemoteJSEnabled
- 如果设置为false,您的独立应用程序将永远不会下载任何代码,并且只会使用本地捆绑在设备上的代码。在这种情况下,您的应用的所有更新都必须通过Apple审核提交。默认为true。 (请注意,这不适用于ExpoKit项目)
- loadJSInBackgroundExperimental
- 如果为true,那么您的独立应用程序将立即运行其缓存的JS束(如果存在),并在后台请求新束。
- supportsTablet
- 无论您的独立iOS应用程序是否支持平板电脑屏幕尺寸。默认为false。
- isTabletOnly
- 如果为true,表示您的独立iOS应用程序不支持手机,并且仅支持平板电脑。
- infoPlist
- 将任意配置字典添加到您的独立应用的原生Info.plist中。在所有其他expo特定配置之前应用。没有其他的验证被执行,所以使用这个需要你自己承担App Store拒绝的风险。
- associatedDomains
- 包含独立应用的关联域的数组。
- usesIcloudStorage
- 指示应用程序是否使用iCloud Storage for DocumentPicker的布尔值。有关详细信息,请参阅DocumentPicker文档。
- splash
- 用于独立iOS应用程序的加载和启动屏幕的配置。
- backgroundColor--背景颜色
- 填充加载屏幕背景的颜色6个字符长的十六进制颜色字符串,例如:'#000000'
- resizeMode
- 确定图像在飞溅加载屏幕中的显示方式。必须是封面或包含之一,默认为包含。有效值:'cover','contains'
- image--图片
- 本地路径或远程URL到图像以填充加载屏幕的背景。图像大小和纵横比取决于您。必须是.png。
- tabletImage
- 本地路径或远程URL到图像以填充加载屏幕的背景。图像大小和纵横比取决于您。必须是.png。
Android--安卓
仅限独立应用程序。 Android独立应用程序特定配置
- package--包
- Android独立应用的软件包名称。您可以做到这一点,但它必须在Play商店中独一无二。看到这个StackOverflow的问题。反向DNS符号您的应用的唯一名称。例如,host.exp.exponent,其中exp.host是我们的域名,Expo是我们的应用程序。
- versionCode
- Google Play所需的版本号。每个版本增加1。必须是整数。 https://developer.android.com/studio/publish/versioning.html
- icon--图标
- 本地路径或远程网址映射到Android应用的图标。如果指定,则会覆盖顶层图标键。我们建议您使用1024x1024 png文件(建议Google Play商店使用透明度)。此图标将显示在主屏幕上和世博会应用程序中。
- playStoreUrl
- 如果您在Google Play商店中部署了应用,则可以在Google Play商店中使用该网址。如果您的应用程序是公开的,这用于链接到您的世博项目页面上的商店页面。
- permissions--权限
- 独立应用程序使用的权限列表。删除该字段以使用默认的权限列表。
- 例如:[“CAMERA”,“ACCESS_FINE_LOCATION”]。
- 您可以根据您的需要指定以下权限:
- ACCESS_COARSE_LOCATION
- ACCESS_FINE_LOCATION
- CAMERA--相机
- MANAGE_DOCUMENTS
- READ_CONTACTS
- READ_EXTERNAL_STORAGE
- READ_INTERNAL_STORAGE
- READ_PHONE_STATE
- RECORD_AUDIO--录制音频
- USE_FINGERPRINT
- VIBRATE--震动
- WAKE_LOCK
- WRITE_EXTERNAL_STORAGE
- com.anddoes.launcher.permission.UPDATE_COUNT
- com.android.launcher.permission.INSTALL_SHORTCUT
- com.google.android.c2dm.permission.RECEIVE
- com.google.android.gms.permission.ACTIVITY_RECOGNITION
- com.google.android.providers.gsf.permission.READ_GSERVICES
- com.htc.launcher.permission.READ_SETTINGS
- com.htc.launcher.permission.UPDATE_SHORTCUT
- com.majeur.launcher.permission.UPDATE_BADGE
- com.sec.android.provider.badge.permission.READ
- com.sec.android.provider.badge.permission.WRITE
- com.sonyericsson.home.permission.BROADCAST_BADGE
- config--配置
- branch--分支
- 分支键挂钩分支连接服务。
- apiKey
- 您的分支API密钥
- fabric
- Google Developers Fabric密钥来连接Crashlytics和其他服务。
- apiKey
- 您的Fabric API密钥
- buildSecret
- 你的面料构建秘密
- googleMaps--谷歌地图
- 适用于您的独立应用的Google地图Android SDK密钥。
- apiKey
- 您的Google地图Android SDK API密钥
- googleSignIn
- Google Sign-In独立应用的Android SDK密钥。
- apiKey
- Android API密钥。可以在开发人员控制台的凭据部分或google-services.json中找到。
- certificateHash
- 用于构建apk的签名证书的SHA-1哈希,没有任何分隔符:。可以在google-services.json中找到。 https://developers.google.com/android/guides/client-auth
- splash
- 针对独立Android应用程序加载和启动屏幕的配置。
- backgroundColor--背景颜色
- 填充加载屏幕背景的颜色6个字符长的十六进制颜色字符串,例如:'#000000'
- resizeMode
- 确定图像在飞溅加载屏幕中的显示方式。必须是封面或包含之一,默认为包含。有效值:'cover','contains'
- LDPI
- 本地路径或远程URL到图像以填充加载屏幕的背景。图像大小和纵横比取决于您。必须是.png。
- MDPI
- 本地路径或远程URL到图像以填充加载屏幕的背景。图像大小和纵横比取决于您。必须是.png。
- hdpi
- 本地路径或远程URL到图像以填充加载屏幕的背景。图像大小和纵横比取决于您。必须是.png。
- xhdpi
- 本地路径或远程URL到图像以填充加载屏幕的背景。图像大小和纵横比取决于您。必须是.png。
- xxhdpi
- 本地路径或远程URL到图像以填充加载屏幕的背景。图像大小和纵横比取决于您。必须是.png。
- xxhdpi
- 本地路径或远程URL到图像以填充加载屏幕的背景。图像大小和纵横比取决于您。必须是.png。
[FB这些东西咱们也用不了,下面的看不看无所谓]
facebookAppId
用于所有Facebook库。在https://developers.facebook.com上设置您的Facebook应用程序ID。
facebookDisplayName
用于本地Facebook登录。
facebookScheme
用于Facebook本地登录。以'fb'开始,后跟一串数字,如'fb1234567890'。您可以在https://developers.facebook.com/docs/facebook-login/ios的“配置您的info.plist”部分找到您的方案。
splash
用于独立应用程序的加载和启动屏幕的配置。
- backgroundColor--背景颜色
- 填充加载屏幕背景的颜色6个字符长的十六进制颜色字符串,例如:'#000000'
- resizeMode
- 确定图像在飞溅加载屏幕中的显示方式。必须是封面或包含之一,默认为包含。有效值:'cover','contains'
- image--图片
- 本地路径或远程URL到图像以填充加载屏幕的背景。图像大小和纵横比取决于您。必须是.png。
hooks--钩子
配置脚本以运行以挂接到发布过程
postPublish
assetBundlePatterns
指向将在独立应用程序二进制文件中捆绑的资产的文件全局字符串数组。请阅读脱机支持指南 。
下一张继续介绍,这一篇主要介绍了:expo中app.json 文件的配置信息欢迎大家关注我的微信公众号,这篇文章是否被大家认可,我的衡量标准就是公
众号粉丝增长人数。欢迎大家转载,但必须保留本人博客链接!