コミットを比較

...

215 コミット

作成者 SHA1 メッセージ 日付
  caserKing 68df77801c 【大屏】【修改】【高度240】 5年前
  caserKing d6614cb70d 【大屏】【修改】【去掉测试数据】 5年前
  caserKing 4c668f8b2c 【大屏】【测试提交1】 5年前
  caserKing 50be508097 【大屏】【优化】【删除多余log】 5年前
  caserKing 58d9636893 【大屏】【优化】【大屏的排名显示隐藏】 5年前
  caserKing d7abe27a8c 【大屏】【修改】【删除多余log】 5年前
  caserKing 6f645264a0 【大屏】【修改】】星星样式5】 5年前
  caserKing d0af46b122 【大屏】【修改】】星星样式4】 5年前
  caserKing 13f06f5313 【大屏】【修改】】星星样式3】 5年前
  caserKing dbf641eb06 【大屏】【修改】】星星样式2】 5年前
  caserKing fd548b344c 【大屏】【修改】】星星样式】 5年前
  caserKing a48da27793 '【大屏】【修改】【调整样式人气图标】' 5年前
  caserKing 850835feae 【大屏】【修改】【背景】 5年前
  caserKing 3f0b11fb07 【大屏】【添加】【排名接口screen】 5年前
  caserKing e8e6804786 【大屏】【切换回券模式] 5年前
  caserKing 572ea9111a 【大屏】【添加】【给纯广告图的模式加上排名] 5年前
  caserKing 0455c2443a 【大屏】【测试】【测试插件错误原因2] 5年前
  caserKing 98e6a11691 【大屏】【测试】【测试插件错误原因] 5年前
  caserKing 9af572f291 【大屏】【添加】【融合券和广告的动画】 5年前
  caserKing 0b55de9163 【大屏】【添加】【商户排行字号调整10】 5年前
  caserKing d63b84bf1a 【大屏】【修改】【排名布局2】 5年前
  caserKing c30801377b 【大屏】【修改】【排名布局】 5年前
  caserKing 67ce5d4931 【大屏】【添加】【商户排行字号调整9】 5年前
  caserKing b427299bf5 【大屏】【添加】【商户排行字号调整8】 5年前
  caserKing a34aac415a 【大屏】【添加】【商户排行字号调整7】 5年前
  caserKing b58e382b81 【大屏】【添加】【商户排行字号调整6】 5年前
  caserKing a902c1505f 【大屏】【添加】【商户排行字号调整5】 5年前
  caserKing cdf503afee 【大屏】【添加】【商户排行字号调整4】 5年前
  caserKing e971389a11 【大屏】【添加】【商户排行字号调整3】 5年前
  caserKing 0f3f9f0136 【大屏】【添加】【商户排行字号调整2】 5年前
  caserKing 4762c76a64 【大屏】【添加】【商户排行字号调整】 5年前
  caserKing cd40e4bedc 【大屏】【添加】【商户排行】 5年前
  caserKing 3aa2a02d67 【大屏】【金额数字超限处理】 5年前
  hupeng ca7181c879 [系统][修改]:固定codepush的版本 5年前
  hupeng e82c19ed14 [系统][修改]:固定codepush的版本 5年前
  caserKing 64b04af159 【测试包是否更新,加个空行】 5年前
  caserKing 63f5f1d98b '[大屏】【图片提交优惠/砍价】' 5年前
  caserKing c93aeffc6b Merge branch 'develop' of https://git.youlane.cn/mobileui/screenAd into develop 5年前
  caserKing fdf00c0668 【大屏】【修改】【加上白色图遮罩,透明度为.1 5年前
  hupeng f520725fd7 [系统][修改]:删除不需引入语句 5年前
  caserKing 8e63cc2d54 【大屏】【修改】【取消盒子阴影尝试】 5年前
  hupeng 9c6e85df0f [系统][修改]:删除不需要更新的文件 5年前
  caserKing 39f0ea43c9 【大屏】【修改】【codepush异常不重启】 5年前
  caserKing f94eed54d4 Merge branch 'develop' of https://git.youlane.cn/mobileui/screenAd into develop 5年前
  caserKing 277c29dd30 重新打最终包 5年前
  caserKing 05305fefa0 回滚到改动后版本 5年前
  caserKing 44a23912af Merge branch 'develop' of https://git.youlane.cn/mobileui/screenAd into develop 5年前
  caserKing e07ce48015 测试自动更新 5年前
  caserKing 5a14bbfa39 测试以前的自动更新02 5年前
  caserKing 2d4e5bd67c 【大屏】【测试提交] 5年前
  caserKing 67cc942bfd 【大屏】【测试提交] 5年前
  caserKing 72aeddcfba 【大屏】【测试提交] 5年前
  caserKing b062df4c35 【大屏】【修改】【添加默认图】 5年前
  caserKing 70d90e01eb 【大屏】【添加】【图片预加载处理】 5年前
  caserKing 285a1b7c75 【大屏】【优化】【图片预加载】 5年前
  caserKing c4ca42ef2f 【大屏】【测试】【提交测试】 5年前
  caserKing d5ab4d7a38 【大屏】【增加】【动画和券logo】 5年前
  hupeng 0787c492a2 [监控][修改]:调整服务前台化的位置 5年前
  caserKing 2fb7ab99c2 【大屏】【修改】【图片默认路径】 5年前
  hupeng 071dcabf4f [监控][修改]:打印引起的错误 5年前
  hupeng 998d25ac6f [监控][添加]:增加监控服务进程 5年前
  caserKing 6f01803715 【大屏】【修改】【定位样式】 5年前
  caserKing 1b48fdb6d6 【大屏】【修改】【调整比例】 5年前
  caserKing 96bf0aea00 【大屏】【修改】【播放方式】 5年前
  caserKing 4d1566185d 【大屏】【修改】【调整样式】 5年前
  caserKing a0fb10a394 【大屏】【修改】【透明度】 5年前
  caserKing ece490cce3 [大屏][修改][添加盒子阴影]】 5年前
  caserKing f23f1d4bbf 调小优惠券 5年前
  caserKing 6ae0fdae95 test数据 5年前
  caserKing 9696358614 测试模式 5年前
  caserKing 3f4ea581f0 timer另起名字 5年前
  caserKing 9cc45e9a8c 取消假数据,正式提交 5年前
  caserKing 4e48c19c96 3种播放提交02 5年前
  caserKing 92d53ad9c3 3种播放提交 5年前
  caserKing ecd90bb59d 测试重新安装05 5年前
  caserKing b6312a3fdd 测试重新安装04 5年前
  caserKing c6ccd3ec76 测试重新安装03 5年前
  caserKing 3d1e4777db 测试重新安装02 5年前
  caserKing 524c3b4b7b 测试重新安装 5年前
  caserKing c2a11df615 test-width 5年前
  caserKing fd2a0c4fcb 1084宽 5年前
  caserKing aabe4456d8 width不生效 5年前
  caserKing bda693f88f width 5年前
  caserKing 376d470b93 宽度100% 5年前
  caserKing 0511bd434c 添加border定位问题 5年前
  caserKing c1d38c0c4e 添加像素比 5年前
  caserKing 434bf3b8e2 切换轮播模式 5年前
  caserKing 08836f2d63 尝试处理轮播销毁操作 5年前
  caserKing a61ca99a74 轮播销毁后再用不会自动播放 5年前
  hupeng 8550157897 [动画][修改]:动画默认值 5年前
  hupeng a1aa8346c7 [升级][修改]:优化升级组件使用方式 5年前
  hupeng 54a4b19998 [升级][修改]:优化升级组件使用方式 5年前
  hupeng bfbdf6de43 [升级][修改]:优化升级组件使用方式 5年前
  hupeng 5cab2a84c4 [升级][修改]:优化升级组件使用方式 5年前
  hupeng 9b4512c979 [网络][修改]:删除图片缓存组件 5年前
  hupeng 8f360c9371 [网络][修改]:优化网络获取数据的方式 5年前
  hupeng 79512a4e6f [网络][修改]:优化网络获取数据的方式 5年前
  hupeng 43ce06e0b0 Merge commit 'refs/tags/jenkins-front-end-screenad-180-v29^{}' into develop 5年前
  hupeng b8c40d00ae [测试][升级]:升级方式测试 5年前
  hupeng d07167544b [测试][升级]:升级方式测试 5年前
  hupeng 5eeaaa6e2c Merge commit 'refs/tags/jenkins-front-end-screenad-177-v102^{}' into release 5年前
  hupeng b3d2d04f05 [测试][升级]:升级方式测试 5年前
  hupeng a5caf6ad42 Merge commit 'refs/tags/jenkins-front-end-screenad-175-v101^{}' into release 5年前
  hupeng 12fcab8103 [升级][修改]:升级模式 5年前
  hupeng b2eaf639f4 Merge commit 'refs/tags/jenkins-front-end-screenad-173-v100^{}' into release 5年前
  hupeng c002f19dff [数据][修改]:取消异步执行 5年前
  hupeng 7d20600665 Merge branch 'product' into develop 5年前
  hupeng 4b99cb3499 [图片][修改]:小程序公众号图片不使用缓存 5年前
  hupeng 06eac17e2b Merge commit 'refs/tags/jenkins-front-end-screenad-167-v99^{}' into release 5年前
  hupeng 181d16f34f [系统][修改]:配置文件中启用大内存选项 5年前
  hupeng 3648d4eb5e Merge commit 'refs/tags/jenkins-front-end-screenad-163-v97^{}' into release 6年前
  hupeng ff2e01c965 [图片][修改]:缓存除了商品外的其他图片 6年前
  hupeng e37f0abc22 Merge commit 'refs/tags/jenkins-front-end-screenad-149-v95^{}' into release 6年前
  hupeng 28a8009b93 [图片][修改]:图片的缩放方式 6年前
  hupeng 03da5f1529 Merge commit 'refs/tags/jenkins-front-end-screenad-147-v94^{}' into release 6年前
  hupeng 653b75fbb9 [图片][修改]:引入图片缓存模块 6年前
  hupeng ab2a36df3e Merge commit 'refs/tags/jenkins-front-end-screenad-145-v93^{}' into release 6年前
  hupeng 830f6f1727 [通信][修复]:图片压缩模式更改 6年前
  hupeng eca5bd37d2 Merge commit 'refs/tags/jenkins-front-end-screenad-143-v92^{}' into release 6年前
  hupeng 7f690c9406 [通信][修复]:切换为异步模式 6年前
  hupeng b3c7b0e23d [更新][修复]:更新方式更改 6年前
  hupeng c5843efdf4 Merge commit 'refs/tags/jenkins-front-end-screenad-139-v89^{}' into release 6年前
  hupeng e2ec37d0e1 Merge branch 'release' into develop 6年前
  hupeng a5f81efe3d [通信][修复]:访问增加超时机制 6年前
  hupeng c7fac98721 Merge commit 'refs/tags/jenkins-front-end-screenad-137-v88^{}' into release 6年前
  hupeng 0fb5abcec5 [异常][修复]:捕获更新中的异常 6年前
  hupeng 16c915a73c Merge commit 'refs/tags/jenkins-front-end-screenad-135-v87^{}' into release 6年前
  hupeng 3bc2fd48a4 [计时][修改]:同步的访问服务器数据,更换计时方式 6年前
  hupeng 3a7abc4183 Merge commit 'refs/tags/jenkins-front-end-screenad-131-v86^{}' into release 6年前
  hupeng 2a680cfffd Merge commit 'refs/tags/jenkins-front-end-screenad-130-v85^{}' into release 6年前
  hupeng 4b78338d03 [系统][升级]:更新数据存储方式 6年前
  hupeng b0c6d51993 [系统][升级]:更新RN版本,升级基础设施 6年前
  hupeng f7cde8a8db Merge commit 'refs/tags/jenkins-front-end-screenad-128-v84^{}' into release 6年前
  hupeng cff76f5db8 [系统][升级]:更新最新的RN和react版本 6年前
  hupeng e3e753e257 Merge commit 'refs/tags/jenkins-front-end-screenad-125-v83^{}' into release 6年前
  hupeng 8f121b4ffe [地址][修改]:更改js升级服务器的地址 6年前
  hupeng 00d033c309 Merge commit 'refs/tags/jenkins-front-end-screenad-122-v82^{}' into release 6年前
  hupeng e177fa0eea [显示][修改]:优化动画显示方式 6年前
  hupeng e2a5643bd0 Merge commit 'refs/tags/jenkins-front-end-screenad-120-v81^{}' into release 6年前
  hupeng 773df26bec [显示][修复]:更新提示显示问题 6年前
  hupeng 511ff309a3 Merge commit 'refs/tags/jenkins-front-end-screenad-118-v80^{}' into release 6年前
  hupeng 60db988d02 [显示][修复]:卡券封面显示不出来尝试修改 6年前
  hupeng 69a0dbb644 Merge commit 'refs/tags/jenkins-front-end-screenad-116-v79^{}' into release 6年前
  hupeng 72ee2b8e96 [显示][修复]:无广告时的错误提示 6年前
  hupeng ed37f9b4c2 Merge commit 'refs/tags/jenkins-front-end-screenad-114-v78^{}' into release 6年前
  hupeng ff9d6e0e38 [显示][修复]:无广告时的错误提示 6年前
  hupeng fa199cdb38 [显示][修复]:无广告时的错误提示 6年前
  hupeng e381cbf42f Merge commit 'refs/tags/jenkins-front-end-screenad-111-v77^{}' into release 6年前
  hupeng ccf9eec973 [显示][修改]:封装代码更新显示页面 6年前
  hupeng 9cb84f58aa [系统][更改]:没注册情况下心跳返回错误处理 6年前
  hupeng 9e1701037e [编译][修复]:key名称导致不能编译通过问题 6年前
  hupeng 2a009347cf [编译][修复]:key名称导致不能编译通过问题 6年前
  hupeng c7fa9dcc31 [编译][修改]:release编译问题解决 6年前
  hupeng 97f7fb1184 [编译][修改]:release编译问题解决 6年前
  hupeng f557f688d5 [编译][修改]:给release打包添加相应的key 6年前
  hupeng 894b071d5d [编译][修改]:给release打包添加相应的key 6年前
  hupeng 3acf65e184 Merge commit 'refs/tags/jenkins-front-end-screenad-102-v75^{}' into release 6年前
  meo 48c0860407 [版本号][增加]:[版本号中增加B字母] 6年前
  meo 9fd3223311 [底部版本号][修改]:[增加versionCode] 6年前
  meo 911aaf31af [心跳时间][修改]:[修改为10秒] 6年前
  meo 391c9169e9 [二维码][修改]:[二维码位置修改] 6年前
  meo 2779e54231 [二维码][修改]:[二维码位置修改] 6年前
  meo 2a1eb35d22 [扫码领取][修改]:[文字样式修改] 6年前
  meo 9a6836805e [扫码领取][修改]:[文字样式修改] 6年前
  meo 3c887a8f02 [楼层楼座][修改]:[样式修改] 6年前
  meo 679515ca6d [券][增加]:[增加楼层楼座] 6年前
  meo 3c4a2dba2d [修改时间间隔][修改] 6年前
  meo 320b570b6b [修改时间间隔][修改] 6年前
  meo 03de37170f [动画][修改]:[心跳时间修改] 6年前
  meo 2a395c9149 [动画][修改]:[心跳时间修改] 6年前
  meo 7f3641bf1d [动画][修改]:[修改动画] 6年前
  meo 5b696be3e9 [数据动态化]修改]:[修改心跳的数据动态化] 6年前
  meo 4c33422979 [数据动态化]修改]:[修改心跳的数据动态化] 6年前
  meo 316bc77682 [售价和面额][修改]:[售价和面额样式的修改] 6年前
  meo 6d2aca1dff [售价和面额][修改]:[售价和面额样式的修改] 6年前
  meo 2e9a1bc1d6 [售价面额][修改]:[文字大小和位置的修改] 6年前
  hupeng a6717a6f29 [显示][修改]:代码结构优化,修复不同种类券显示问题 6年前
  meo f91a34bb02 [售价样式修改] 6年前
  meo baa53d8716 [页面样式修改] 6年前
  meo 460613e145 [面额样式的修改] 6年前
  meo 0ba76b71d9 [增加注释,修改样式][修改] 6年前
  hupeng 626e9a7774 [显示][修复]:动画效果增加硬件加速选项 6年前
  meo bb1972805b [添加注释] 6年前
  hupeng d78a55ce8d [显示][修改]:字体调整,价格显示调整 6年前
  hupeng 3247327bfc [显示][修改]:动画延迟,中文状态提示 6年前
  hupeng 229952f6db [显示][修改]:logo背景和填充方式 6年前
  hupeng 0448538492 [显示][修改]:字号调整 6年前
  hupeng 224e763ee9 [显示][修改]:适配大屏的分辨率 6年前
  hupeng 92c7af45c8 [显示][修改]:适配真机大屏的点阵比 6年前
  hupeng 20197f6842 [系统][修改]:开机联网,获取信息检查 6年前
  hupeng 2dd823f533 [编译][新增]:获取系统信息,添加product编译模式 6年前
  hupeng f80eb821b2 [字体][修复]:标题超出部分进行缩略 6年前
  hupeng b7f5f1f8e1 [系统][修改]:心跳访问,抢购角标添加 6年前
  hupeng b28e550338 [功能][新增]:完善更新逻辑和相关的代码 6年前
  hupeng aec3707710 [样式][新增]:动画效果 6年前
  hupeng dc0de21cfa [系统][修改]:版本号的定义方式 6年前
  hupeng efb7695adc [升级][新增]:运行后自动升级 6年前
  hupeng 2ea27f9b15 [图片][新增]:砍价左上角的图标 6年前
  hupeng dd0aa0f8a4 [样式][新增]:优惠券动画效果 6年前
  hupeng 3ff426f33f [样式][新增]:砍价角标添加 6年前
  hupeng 8d664325e1 [样式][修改]:整个页面布局和样式调整 6年前
  hupeng e69604c191 [样式][修改]:调整二维码显示样式 6年前
  hupeng 910ca40239 [样式][修改]:调整二维码显示样式 6年前
  hupeng a4ae42a9a7 [样式][修改]:调整二维码显示样式 6年前
  hupeng ae95c3d9db [样式][修改]:调整APP整体样式 6年前
  hupeng 59645eab08 [页面][修改]:修改首页样式 6年前
  hupeng 1dcf427d4c [编译][修复]:新加模块的编译问题 6年前
  hupeng 063f912b31 [系统][新增]:相机插件和动画插件 6年前
  hupeng c69ad1b4be [系统][新增]:获取设备信息接口 6年前
  hupeng 48e3b42e4f [版本][更改]:可以在更新代码后看到版本号 6年前
  hupeng 4bc9902e4c [APP][修改]:引入package.json文件 6年前
  hupeng c2e07a413d Merge commit 'refs/tags/jenkins-front-end-screenad-12^{}' into release 6年前
  hupeng 2ce13b92b1 [编译][修改]:版本号转换未整数 6年前
  hupeng 49a2a23c43 [编译][更改]:gradle导入,pushcode主机地址导入 6年前
  hupeng 16628a00da [编译][更改]:添加版本号管理逻辑 6年前
58個のファイルの変更14261行の追加256行の削除
分割表示
  1. +1
    -2
      .flowconfig
  2. +10
    -0
      .gitignore
  3. +1543
    -176
      App.js
  4. +41
    -10
      HttpUtils.js
  5. +0
    -1
      __tests__/App-test.js
  6. +54
    -5
      android/app/build.gradle
  7. バイナリ
      android/app/libs/cron4j-2.2.5.jar
  8. バイナリ
      android/app/screenAd.keystore
  9. +16
    -3
      android/app/src/main/AndroidManifest.xml
  10. +22
    -0
      android/app/src/main/java/com/screenad/AutoStartBroadcastReceiver.java
  11. +153
    -0
      android/app/src/main/java/com/screenad/DaemonService.java
  12. +21
    -0
      android/app/src/main/java/com/screenad/MainActivity.java
  13. +36
    -12
      android/app/src/main/java/com/screenad/MainApplication.java
  14. +36
    -0
      android/app/src/main/java/com/screenad/RNBuildConfig.java
  15. +31
    -0
      android/app/src/main/java/com/screenad/RNBuildConfigPackage.java
  16. バイナリ
      android/app/src/main/res/drawable-mdpi/image_background.png
  17. バイナリ
      android/app/src/main/res/drawable-mdpi/image_discount.png
  18. バイナリ
      android/app/src/main/res/drawable-mdpi/image_groupbuy.png
  19. バイナリ
      android/app/src/main/res/drawable-mdpi/image_itembackground.png
  20. バイナリ
      android/app/src/main/res/drawable-mdpi/image_timed.png
  21. バイナリ
      android/app/src/main/res/drawable-mdpi/image_title.png
  22. バイナリ
      android/app/src/main/res/drawable-mdpi/image_titleqrcode.png
  23. +0
    -1
      android/app/src/main/res/values/strings.xml
  24. +1
    -7
      android/build.gradle
  25. +4
    -0
      android/gradle.properties
  26. バイナリ
      android/gradle/wrapper/gradle-5.4.1-all.zip
  27. バイナリ
      android/gradle/wrapper/gradle-wrapper.jar
  28. +1
    -1
      android/gradle/wrapper/gradle-wrapper.properties
  29. +17
    -1
      android/gradlew
  30. +17
    -1
      android/gradlew.bat
  31. +7
    -1
      android/settings.gradle
  32. +2
    -2
      babel.config.js
  33. バイナリ
      image/background-yellow.png
  34. バイナリ
      image/background.png
  35. バイナリ
      image/discount.png
  36. バイナリ
      image/groupbuy.png
  37. バイナリ
      image/hot_gray.png
  38. バイナリ
      image/hot_yellow.png
  39. バイナリ
      image/item-background.png
  40. バイナリ
      image/logo.png
  41. バイナリ
      image/page1.jpg
  42. バイナリ
      image/page2.jpg
  43. バイナリ
      image/page3.jpg
  44. バイナリ
      image/page4.jpg
  45. バイナリ
      image/star_gray.png
  46. バイナリ
      image/star_yellow.png
  47. バイナリ
      image/test-l.png
  48. バイナリ
      image/timed.png
  49. バイナリ
      image/title-qrcode.png
  50. バイナリ
      image/title.png
  51. バイナリ
      image/title_yellow.png
  52. +0
    -1
      index.js
  53. +85
    -9
      ios/screenAd.xcodeproj/project.pbxproj
  54. +2
    -1
      ios/screenAd/AppDelegate.h
  55. +15
    -13
      ios/screenAd/AppDelegate.m
  56. +17
    -0
      metro.config.js
  57. +12110
    -0
      package-lock.json
  58. +19
    -9
      package.json

+ 1
- 2
.flowconfig ファイルの表示

@@ -24,7 +24,6 @@
[libs]
node_modules/react-native/Libraries/react-native/react-native-interface.js
node_modules/react-native/flow/
node_modules/react-native/flow-github/

[options]
emoji=true
@@ -67,4 +66,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError

[version]
^0.86.0
^0.92.0

+ 10
- 0
.gitignore ファイルの表示

@@ -54,3 +54,13 @@ buck-out/

# Bundle artifact
*.jsbundle
/yarn.lock

android/app/.classpath
android/app/.project
android/.project
android/.settings/*
android/app/.settings/*
android/app/src/main/gen/*
android/bin/*


+ 1543
- 176
App.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 41
- 10
HttpUtils.js ファイルの表示

@@ -1,17 +1,36 @@
export default class HttpUtil {
/**
* 利用 Promise 的 get 方式请求
* @param url
* @returns {Promise}
*/
static get(url) {
return new Promise((resolve, reject) => {
fetch(url)
request = new Promise((resolve, reject) => {
fetch(url, {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(result => resolve(result))
.catch(error => reject(error))
})
}).catch(e => reject(e.message));
const timeoutRequest = new Promise((resolve, reject) => {
setTimeout(reject, 30000, 'Request timeout');
});
return Promise
.race([request, timeoutRequest])
.then(res => {
return res
}, m => {
throw new Error(m);
});
}
/**
@@ -21,7 +40,7 @@ export default class HttpUtil {
* @returns {Promise}
*/
static post(url, params) {
return new Promise((resolve, reject) => {
request = new Promise((resolve, reject) => {
fetch(url, {
method: 'POST',
headers: {
@@ -29,11 +48,23 @@ export default class HttpUtil {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
})
.then(response => response.json())
.then(result => resolve(result))
.catch(error => reject(error))
})
}).then(response => response.json())
.then(result => resolve(result))
}).catch(e => reject(e.message));
const timeoutRequest = new Promise((resolve, reject) => {
setTimeout(reject, 30000, 'Request timeout');
});
return Promise
.race([request, timeoutRequest])
.then(res => {
return res
}, m => {
throw new Error(m);
});
}
}

__tests__/App.js → __tests__/App-test.js ファイルの表示

@@ -1,6 +1,5 @@
/**
* @format
* @lint-ignore-every XPLATJSCOPYRIGHT1
*/

import 'react-native';

+ 54
- 5
android/app/build.gradle ファイルの表示

@@ -96,35 +96,81 @@ def enableProguardInReleaseBuilds = false

android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

def getVersionCode = { ->
return project.hasProperty('versionCode') ? Integer.parseInt(project.versionCode) : 1
}

def getVersionName = { ->
return project.hasProperty('versionName') ? project.versionName : "1.0"
}

defaultConfig {
applicationId "com.screenad"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
versionCode = getVersionCode()
versionName getVersionName()
}

android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "screenad_" + variant.buildType.name + "_" + defaultConfig.versionCode + ".apk"
}
}

splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a"
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
debug {
buildConfigField "String", "API_HOST", "\"https://mall.youlane.cn/\""
buildConfigField "String", "CODEPUSH_HOST", "\"https://update.youlane.cn/\""
buildConfigField "String", "CODEPUSH_KEY", "\"8snO1yoHlvhEtBjr02zTr3g1comw4ksvOXqog\""
}
release {
buildConfigField "String", "API_HOST", "\"https://admintest.malls.iformall.com/\""
buildConfigField "String", "CODEPUSH_HOST", "\"https://update.youlane.cn/\""
buildConfigField "String", "CODEPUSH_KEY", "\"9rYZYySFD0ryN5wCD9YmjJkT55Kf4ksvOXqog\""
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
product.initWith(release)
product {
buildConfigField "String", "API_HOST", "\"https://admin.malls.iformall.com/\""
buildConfigField "String", "CODEPUSH_HOST", "\"https://update.malls.iformall.com/\""
buildConfigField "String", "CODEPUSH_KEY", "\"9rYZYySFD0ryN5wCD9YmjJkT55Kf4ksvOXqog\""
matchingFallbacks = ['product', 'release']
}

}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3]
def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
@@ -135,6 +181,9 @@ android {
}

dependencies {
implementation project(':react-native-svg')
implementation project(':react-native-camera')
implementation project(':react-native-device-info')
implementation project(':react-native-code-push')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"


バイナリ
android/app/libs/cron4j-2.2.5.jar ファイルの表示


バイナリ
android/app/screenAd.keystore ファイルの表示


+ 16
- 3
android/app/src/main/AndroidManifest.xml ファイルの表示

@@ -3,7 +3,9 @@

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
@@ -14,16 +16,27 @@

<activity
android:name=".MainActivity"
android:screenOrientation="portrait"
android:screenOrientation="portrait"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
android:windowSoftInputMode="adjustResize"
android:largeHeap="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
<service
android:name=".DaemonService"
android:exported="true"
android:launchMode="singleInstance" />
<receiver android:name=".AutoStartBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME"/>
</intent-filter>
</receiver>
</application>

</manifest>

+ 22
- 0
android/app/src/main/java/com/screenad/AutoStartBroadcastReceiver.java ファイルの表示

@@ -0,0 +1,22 @@
package com.screenad;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
//开机自启动广播接受
public class AutoStartBroadcastReceiver extends BroadcastReceiver {
static final String action_boot ="android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(action_boot) && !BuildConfig.BUILD_TYPE.equals("debug")){
Intent sayHelloIntent=new Intent(context,MainActivity.class);
sayHelloIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(sayHelloIntent);
}
}
}

+ 153
- 0
android/app/src/main/java/com/screenad/DaemonService.java ファイルの表示

@@ -0,0 +1,153 @@
package com.screenad;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.NotificationChannel;
import android.app.Service;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import android.app.ActivityManager;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.util.Log;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.ArrayList;
import java.util.List;
import com.screenad.MainApplication;
import it.sauronsoftware.cron4j.Scheduler;
/**
* 守护进程,同时用来升级程序
*/
public class DaemonService extends Service {
// 核心进程 Service ID
private final static int CORE_SERVICE_ID = -5122;
private ExecutorService executorService = Executors.newSingleThreadExecutor();
Scheduler scheduler;
public DaemonService() {
}
private static void log(String text) {
Log.i("DaemonService",text);
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
log("started");
//利用 Android 漏洞提高进程优先级, 前台进程
String CHANNEL_ONE_ID = "DaemonService";
String CHANNEL_ONE_NAME= "DaemonService";
NotificationChannel notificationChannel= null;
//进行8.0的判断
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
notificationChannel= new NotificationChannel(CHANNEL_ONE_ID,
CHANNEL_ONE_NAME, NotificationManager.IMPORTANCE_HIGH);
notificationChannel.setShowBadge(true);
notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
NotificationManager manager= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.createNotificationChannel(notificationChannel);
}
Notification notification= new Notification.Builder(this).setChannelId(CHANNEL_ONE_ID)
.setContentTitle("DaemonService")
.build();
notification.flags|= Notification.FLAG_NO_CLEAR;
startForeground(CORE_SERVICE_ID, notification);
executorService.submit(new Runnable() {
@Override
public void run() {
startCronTabTask();
}
});
return START_STICKY;
}
private boolean isProcessWork(Context context, String processName) {
ActivityManager myAM = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> processInfos = myAM.getRunningAppProcesses();
if (processInfos == null) {
return false;
}
for (ActivityManager.RunningAppProcessInfo processInfo : processInfos) {
if (processInfo.processName.equals(processName)) {
return true;
}
}
return false;
}
private boolean isBackground(Context context, String packageName) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals(packageName)) {
/* BACKGROUND=400 EMPTY=500 FOREGROUND=100 GONE=1000 PERCEPTIBLE=130 SERVICE=300 ISIBLE=200 */
log(appProcess.processName + " appimportace =" + appProcess.importance);
if (appProcess.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
log("处于后台" + appProcess.processName);
return true;
} else {
log("处于前台" + appProcess.processName);
return false;
}
}
}
return false;
}
/**
* 开启cron4jtab定时任务
*/
private void startCronTabTask() {
if (scheduler != null) {
scheduler.stop();
}
scheduler = new Scheduler();
scheduler.isDaemon();
scheduler.schedule("* * * * *", new Runnable() {
public void run() {
try {
if (!isProcessWork(MainApplication.getContext(), "com.screenad") ||
isBackground(MainApplication.getContext(), "com.screenad")) {
log("正在重启 com.screenad...");
Intent newIntent = MainApplication.getContext().getPackageManager().getLaunchIntentForPackage("com.screenad");
MainApplication.getContext().startActivity(newIntent);
}else{
log("运行良好 com.screenad...");
}
} catch (Exception e) {
log(e.getMessage());
}
}
});
scheduler.start();
}
@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onDestroy() {
super.onDestroy();
}
}

+ 21
- 0
android/app/src/main/java/com/screenad/MainActivity.java ファイルの表示

@@ -1,5 +1,10 @@
package com.screenad;

import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.View;

import com.facebook.react.ReactActivity;

public class MainActivity extends ReactActivity {
@@ -8,6 +13,22 @@ public class MainActivity extends ReactActivity {
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(option);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
getWindow().setStatusBarColor(Color.TRANSPARENT);

}

@Override
protected String getMainComponentName() {
return "screenAd";


+ 36
- 12
android/app/src/main/java/com/screenad/MainApplication.java ファイルの表示

@@ -1,8 +1,16 @@
package com.screenad;

import com.screenad.DaemonService;
import android.app.Application;

import android.content.Context;
import android.content.Intent;
import com.facebook.react.ReactApplication;
import com.horcrux.svg.SvgPackage;
import org.reactnative.camera.RNCameraPackage;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.learnium.RNDeviceInfo.RNDeviceInfo;
import com.microsoft.codepush.react.CodePush;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
@@ -12,14 +20,16 @@ import com.facebook.soloader.SoLoader;
import java.util.Arrays;
import java.util.List;

import android.util.Log;

public class MainApplication extends Application implements ReactApplication {

private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {

@Override
protected String getJSBundleFile() {
return CodePush.getJSBundleFile();
}
@Override
protected String getJSBundleFile() {
return CodePush.getJSBundleFile();
}
@Override
public boolean getUseDeveloperSupport() {
@@ -29,13 +39,17 @@ public class MainApplication extends Application implements ReactApplication {
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new CodePush(
getResources().getString(R.string.reactNativeCodePush_androidDeploymentKey),
getApplicationContext(),
BuildConfig.DEBUG,
"http://202.165.179.86:3333/"
)
new MainReactPackage(),
new SvgPackage(),
new RNCameraPackage(),
new RNBuildConfigPackage(),
new RNDeviceInfo(),
new CodePush(
BuildConfig.CODEPUSH_KEY,
getApplicationContext(),
BuildConfig.DEBUG,
BuildConfig.CODEPUSH_HOST
)
);
}

@@ -45,6 +59,13 @@ public class MainApplication extends Application implements ReactApplication {
}
};

private static void log(String text) {
Log.i("MainApplication",text);
}
private static Context context;
public static Context getContext() {
return context;
}
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
@@ -53,6 +74,9 @@ public class MainApplication extends Application implements ReactApplication {
@Override
public void onCreate() {
super.onCreate();
context = this;
SoLoader.init(this, /* native exopackage */ false);
context.startForegroundService(new Intent(getContext(), DaemonService.class));
log("started");
}
}

+ 36
- 0
android/app/src/main/java/com/screenad/RNBuildConfig.java ファイルの表示

@@ -0,0 +1,36 @@
package com.screenad;
import android.content.pm.PackageManager;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nullable;
public class RNBuildConfig extends ReactContextBaseJavaModule {
public RNBuildConfig(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
public String getName() {
return "BuildConfig";
}
@Override
public @Nullable
Map<String, Object> getConstants() {
HashMap<String, Object> constants = new HashMap<String, Object>();
constants.put("apiHost", BuildConfig.API_HOST);
constants.put("buildType", BuildConfig.BUILD_TYPE);
constants.put("versionCode", BuildConfig.VERSION_CODE);
constants.put("versionName", BuildConfig.VERSION_NAME);
return constants;
}
}

+ 31
- 0
android/app/src/main/java/com/screenad/RNBuildConfigPackage.java ファイルの表示

@@ -0,0 +1,31 @@
package com.screenad;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class RNBuildConfigPackage implements ReactPackage {
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
@Override
public List<NativeModule> createNativeModules(
ReactApplicationContext reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new RNBuildConfig(reactContext));
return modules;
}
// Deprecated RN 0.47
public List<Class<? extends JavaScriptModule>> createJSModules() {
return Collections.emptyList();
}
}

バイナリ
android/app/src/main/res/drawable-mdpi/image_background.png ファイルの表示

変更前 変更後
幅: 1080  |  高さ: 1920  |  サイズ: 995 KiB

バイナリ
android/app/src/main/res/drawable-mdpi/image_discount.png ファイルの表示

変更前 変更後
幅: 142  |  高さ: 142  |  サイズ: 11 KiB

バイナリ
android/app/src/main/res/drawable-mdpi/image_groupbuy.png ファイルの表示

変更前 変更後
幅: 141  |  高さ: 141  |  サイズ: 33 KiB

バイナリ
android/app/src/main/res/drawable-mdpi/image_itembackground.png ファイルの表示

変更前 変更後
幅: 1080  |  高さ: 428  |  サイズ: 28 KiB

バイナリ
android/app/src/main/res/drawable-mdpi/image_timed.png ファイルの表示

変更前 変更後
幅: 141  |  高さ: 141  |  サイズ: 33 KiB

バイナリ
android/app/src/main/res/drawable-mdpi/image_title.png ファイルの表示

変更前 変更後
幅: 546  |  高さ: 198  |  サイズ: 67 KiB

バイナリ
android/app/src/main/res/drawable-mdpi/image_titleqrcode.png ファイルの表示

変更前 変更後
幅: 268  |  高さ: 268  |  サイズ: 28 KiB

+ 0
- 1
android/app/src/main/res/values/strings.xml ファイルの表示

@@ -1,4 +1,3 @@
<resources>
<string moduleConfig="true" name="reactNativeCodePush_androidDeploymentKey">9rYZYySFD0ryN5wCD9YmjJkT55Kf4ksvOXqog</string>
<string name="app_name">screenAd</string>
</resources>

+ 1
- 7
android/build.gradle ファイルの表示

@@ -13,7 +13,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath("com.android.tools.build:gradle:3.4.0")

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -31,9 +31,3 @@ allprojects {
}
}
}


task wrapper(type: Wrapper) {
gradleVersion = '4.7'
distributionUrl = distributionUrl.replace("bin", "all")
}

+ 4
- 0
android/gradle.properties ファイルの表示

@@ -16,3 +16,7 @@
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
MYAPP_RELEASE_STORE_FILE=screenAd.keystore
MYAPP_RELEASE_KEY_ALIAS=screenAd
MYAPP_RELEASE_STORE_PASSWORD=formall2019
MYAPP_RELEASE_KEY_PASSWORD=formall2019

バイナリ
android/gradle/wrapper/gradle-5.4.1-all.zip ファイルの表示


バイナリ
android/gradle/wrapper/gradle-wrapper.jar ファイルの表示


+ 1
- 1
android/gradle/wrapper/gradle-wrapper.properties ファイルの表示

@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
distributionUrl=gradle-5.4.1-all.zip

+ 17
- 1
android/gradlew ファイルの表示

@@ -1,5 +1,21 @@
#!/usr/bin/env sh

#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

##############################################################################
##
## Gradle start up script for UN*X
@@ -28,7 +44,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"


+ 17
- 1
android/gradlew.bat ファイルの表示

@@ -1,3 +1,19 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem http://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -14,7 +30,7 @@ set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome


+ 7
- 1
android/settings.gradle ファイルの表示

@@ -1,5 +1,11 @@
rootProject.name = 'screenAd'
include ':react-native-svg'
project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android')
include ':react-native-camera'
project(':react-native-camera').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-camera/android')
include ':react-native-device-info'
project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android')
include ':react-native-code-push'
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '..\\node_modules\\react-native-code-push\\android\\app')
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')

include ':app'

+ 2
- 2
babel.config.js ファイルの表示

@@ -1,3 +1,3 @@
module.exports = {
presets: ["module:metro-react-native-babel-preset"]
}
presets: ['module:metro-react-native-babel-preset'],
};

バイナリ
image/background-yellow.png ファイルの表示

変更前 変更後
幅: 1080  |  高さ: 1920  |  サイズ: 824 KiB

バイナリ
image/background.png ファイルの表示

変更前 変更後
幅: 1080  |  高さ: 1920  |  サイズ: 995 KiB

バイナリ
image/discount.png ファイルの表示

変更前 変更後
幅: 142  |  高さ: 142  |  サイズ: 11 KiB

バイナリ
image/groupbuy.png ファイルの表示

変更前 変更後
幅: 141  |  高さ: 141  |  サイズ: 33 KiB

バイナリ
image/hot_gray.png ファイルの表示

変更前 変更後
幅: 200  |  高さ: 200  |  サイズ: 5.3 KiB

バイナリ
image/hot_yellow.png ファイルの表示

変更前 変更後
幅: 200  |  高さ: 200  |  サイズ: 5.5 KiB

バイナリ
image/item-background.png ファイルの表示

変更前 変更後
幅: 1080  |  高さ: 428  |  サイズ: 28 KiB

バイナリ
image/logo.png ファイルの表示

変更前 変更後
幅: 88  |  高さ: 63  |  サイズ: 9.4 KiB

バイナリ
image/page1.jpg ファイルの表示

変更前 変更後
幅: 700  |  高さ: 1244  |  サイズ: 383 KiB

バイナリ
image/page2.jpg ファイルの表示

変更前 変更後
幅: 700  |  高さ: 1244  |  サイズ: 383 KiB

バイナリ
image/page3.jpg ファイルの表示

変更前 変更後
幅: 700  |  高さ: 1244  |  サイズ: 383 KiB

バイナリ
image/page4.jpg ファイルの表示

変更前 変更後
幅: 700  |  高さ: 1244  |  サイズ: 383 KiB

バイナリ
image/star_gray.png ファイルの表示

変更前 変更後
幅: 200  |  高さ: 200  |  サイズ: 5.7 KiB

バイナリ
image/star_yellow.png ファイルの表示

変更前 変更後
幅: 200  |  高さ: 200  |  サイズ: 5.9 KiB

バイナリ
image/test-l.png ファイルの表示

変更前 変更後
幅: 63  |  高さ: 64  |  サイズ: 4.2 KiB

バイナリ
image/timed.png ファイルの表示

変更前 変更後
幅: 141  |  高さ: 141  |  サイズ: 33 KiB

バイナリ
image/title-qrcode.png ファイルの表示

変更前 変更後
幅: 268  |  高さ: 268  |  サイズ: 28 KiB

バイナリ
image/title.png ファイルの表示

変更前 変更後
幅: 546  |  高さ: 198  |  サイズ: 67 KiB

バイナリ
image/title_yellow.png ファイルの表示

変更前 変更後
幅: 539  |  高さ: 195  |  サイズ: 64 KiB

+ 0
- 1
index.js ファイルの表示

@@ -1,6 +1,5 @@
/**
* @format
* @lint-ignore-every XPLATJSCOPYRIGHT1
*/

import {AppRegistry} from 'react-native';


+ 85
- 9
ios/screenAd.xcodeproj/project.pbxproj ファイルの表示

@@ -39,8 +39,14 @@
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED297162215061F000B7C4FE /* JavaScriptCore.framework */; };
ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED2971642150620600B7C4FE /* JavaScriptCore.framework */; };
84325BCA939E4E4E8090435C /* libCodePush.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 928B0784CE244B05BADC60D9 /* libCodePush.a */; };
1D9B977EF02A4A4889A3DB8D /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 66D0C7202A274329A44896AF /* libz.tbd */; };
206CC543489C4F7995B4032A /* libCodePush.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 891CFC0FAA7D49E980C84838 /* libCodePush.a */; };
C7220E8B42ED4C16A6C2AE14 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 03F6F5CC7188401F80052D6D /* libz.tbd */; };
FEBB7F68D5534228A6A832AD /* libRNDeviceInfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0C488E5D3FD5417DAAAA5C79 /* libRNDeviceInfo.a */; };
59D20E8E9CD64A01B87A3AC0 /* libRNDeviceInfo-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22D705AD40EF415A95C31652 /* libRNDeviceInfo-tvOS.a */; };
D240C4819F1E4B80BB6D7BEE /* libRNCamera.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F8C0E0ED2BA401B9075C9F3 /* libRNCamera.a */; };
BA9EAC9D8E144D058AC73DD2 /* libRNFetchBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 99C586CF88164E08936AF0C0 /* libRNFetchBlob.a */; };
B4144D9AB571435787D52BFB /* libRNSVG.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C56D91B66FA473E89F6B165 /* libRNSVG.a */; };
C109232BD2434156AC1DB82B /* libRNSVG-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA6B0CF8B7494E2E82C54C57 /* libRNSVG-tvOS.a */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
@@ -348,9 +354,19 @@
ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
0CB64B19BE27429888B0F5FA /* CodePush.xcodeproj */ = {isa = PBXFileReference; name = "CodePush.xcodeproj"; path = "../node_modules/react-native-code-push/ios/CodePush.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
928B0784CE244B05BADC60D9 /* libCodePush.a */ = {isa = PBXFileReference; name = "libCodePush.a"; path = "libCodePush.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
66D0C7202A274329A44896AF /* libz.tbd */ = {isa = PBXFileReference; name = "libz.tbd"; path = "usr/lib/libz.tbd"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = sourcecode.text-based-dylib-definition; explicitFileType = undefined; includeInIndex = 0; };
D256D2ADE9FF4E9782EBCA6D /* CodePush.xcodeproj */ = {isa = PBXFileReference; name = "CodePush.xcodeproj"; path = "../node_modules/react-native-code-push/ios/CodePush.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
891CFC0FAA7D49E980C84838 /* libCodePush.a */ = {isa = PBXFileReference; name = "libCodePush.a"; path = "libCodePush.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
03F6F5CC7188401F80052D6D /* libz.tbd */ = {isa = PBXFileReference; name = "libz.tbd"; path = "usr/lib/libz.tbd"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = sourcecode.text-based-dylib-definition; explicitFileType = undefined; includeInIndex = 0; };
C6058A0BC9054E0394045AC4 /* RNDeviceInfo.xcodeproj */ = {isa = PBXFileReference; name = "RNDeviceInfo.xcodeproj"; path = "../node_modules/react-native-device-info/ios/RNDeviceInfo.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
0C488E5D3FD5417DAAAA5C79 /* libRNDeviceInfo.a */ = {isa = PBXFileReference; name = "libRNDeviceInfo.a"; path = "libRNDeviceInfo.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
22D705AD40EF415A95C31652 /* libRNDeviceInfo-tvOS.a */ = {isa = PBXFileReference; name = "libRNDeviceInfo-tvOS.a"; path = "libRNDeviceInfo-tvOS.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
0F57B32024664223A7D6E682 /* RNCamera.xcodeproj */ = {isa = PBXFileReference; name = "RNCamera.xcodeproj"; path = "../node_modules/react-native-camera/ios/RNCamera.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
4F8C0E0ED2BA401B9075C9F3 /* libRNCamera.a */ = {isa = PBXFileReference; name = "libRNCamera.a"; path = "libRNCamera.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
BE5C3F5DA65B4EFC83BEC512 /* RNFetchBlob.xcodeproj */ = {isa = PBXFileReference; name = "RNFetchBlob.xcodeproj"; path = "../node_modules/react-native-fetch-blob/ios/RNFetchBlob.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
99C586CF88164E08936AF0C0 /* libRNFetchBlob.a */ = {isa = PBXFileReference; name = "libRNFetchBlob.a"; path = "libRNFetchBlob.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
D6E9CCF6747C429FACC9C9EE /* RNSVG.xcodeproj */ = {isa = PBXFileReference; name = "RNSVG.xcodeproj"; path = "../node_modules/react-native-svg/ios/RNSVG.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
9C56D91B66FA473E89F6B165 /* libRNSVG.a */ = {isa = PBXFileReference; name = "libRNSVG.a"; path = "libRNSVG.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
DA6B0CF8B7494E2E82C54C57 /* libRNSVG-tvOS.a */ = {isa = PBXFileReference; name = "libRNSVG-tvOS.a"; path = "libRNSVG-tvOS.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
@@ -379,8 +395,12 @@
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
84325BCA939E4E4E8090435C /* libCodePush.a in Frameworks */,
1D9B977EF02A4A4889A3DB8D /* libz.tbd in Frameworks */,
206CC543489C4F7995B4032A /* libCodePush.a in Frameworks */,
C7220E8B42ED4C16A6C2AE14 /* libz.tbd in Frameworks */,
FEBB7F68D5534228A6A832AD /* libRNDeviceInfo.a in Frameworks */,
D240C4819F1E4B80BB6D7BEE /* libRNCamera.a in Frameworks */,
BA9EAC9D8E144D058AC73DD2 /* libRNFetchBlob.a in Frameworks */,
B4144D9AB571435787D52BFB /* libRNSVG.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -397,6 +417,8 @@
2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */,
2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */,
2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */,
59D20E8E9CD64A01B87A3AC0 /* libRNDeviceInfo-tvOS.a in Frameworks */,
C109232BD2434156AC1DB82B /* libRNSVG-tvOS.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -533,7 +555,7 @@
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
2D16E6891FA4F8E400B85C8A /* libReact.a */,
66D0C7202A274329A44896AF /* libz.tbd */,
03F6F5CC7188401F80052D6D /* libz.tbd */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -571,7 +593,11 @@
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
0CB64B19BE27429888B0F5FA /* CodePush.xcodeproj */,
D256D2ADE9FF4E9782EBCA6D /* CodePush.xcodeproj */,
C6058A0BC9054E0394045AC4 /* RNDeviceInfo.xcodeproj */,
0F57B32024664223A7D6E682 /* RNCamera.xcodeproj */,
BE5C3F5DA65B4EFC83BEC512 /* RNFetchBlob.xcodeproj */,
D6E9CCF6747C429FACC9C9EE /* RNSVG.xcodeproj */,
);
name = Libraries;
sourceTree = "<group>";
@@ -1200,10 +1226,17 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)\..\node_modules\react-native-code-push\ios\CodePush/**",
"$(SRCROOT)\..\node_modules\react-native-device-info\ios\RNDeviceInfo",
"$(SRCROOT)\..\node_modules\react-native-camera\ios/**",
"$(SRCROOT)\..\node_modules\react-native-fetch-blob\ios/**",
"$(SRCROOT)\..\node_modules\react-native-svg\ios/**",
);
};
name = Debug;
@@ -1226,10 +1259,17 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)\..\node_modules\react-native-code-push\ios\CodePush/**",
"$(SRCROOT)\..\node_modules\react-native-device-info\ios\RNDeviceInfo",
"$(SRCROOT)\..\node_modules\react-native-camera\ios/**",
"$(SRCROOT)\..\node_modules\react-native-fetch-blob\ios/**",
"$(SRCROOT)\..\node_modules\react-native-svg\ios/**",
);
};
name = Release;
@@ -1253,6 +1293,10 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)\..\node_modules\react-native-code-push\ios\CodePush/**",
"$(SRCROOT)\..\node_modules\react-native-device-info\ios\RNDeviceInfo",
"$(SRCROOT)\..\node_modules\react-native-camera\ios/**",
"$(SRCROOT)\..\node_modules\react-native-fetch-blob\ios/**",
"$(SRCROOT)\..\node_modules\react-native-svg\ios/**",
);
};
name = Debug;
@@ -1275,6 +1319,10 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)\..\node_modules\react-native-code-push\ios\CodePush/**",
"$(SRCROOT)\..\node_modules\react-native-device-info\ios\RNDeviceInfo",
"$(SRCROOT)\..\node_modules\react-native-camera\ios/**",
"$(SRCROOT)\..\node_modules\react-native-fetch-blob\ios/**",
"$(SRCROOT)\..\node_modules\react-native-svg\ios/**",
);
};
name = Release;
@@ -1305,10 +1353,17 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)\..\node_modules\react-native-code-push\ios\CodePush/**",
"$(SRCROOT)\..\node_modules\react-native-device-info\ios\RNDeviceInfo",
"$(SRCROOT)\..\node_modules\react-native-camera\ios/**",
"$(SRCROOT)\..\node_modules\react-native-fetch-blob\ios/**",
"$(SRCROOT)\..\node_modules\react-native-svg\ios/**",
);
};
name = Debug;
@@ -1339,10 +1394,17 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)\..\node_modules\react-native-code-push\ios\CodePush/**",
"$(SRCROOT)\..\node_modules\react-native-device-info\ios\RNDeviceInfo",
"$(SRCROOT)\..\node_modules\react-native-camera\ios/**",
"$(SRCROOT)\..\node_modules\react-native-fetch-blob\ios/**",
"$(SRCROOT)\..\node_modules\react-native-svg\ios/**",
);
};
name = Release;
@@ -1372,10 +1434,17 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)\..\node_modules\react-native-code-push\ios\CodePush/**",
"$(SRCROOT)\..\node_modules\react-native-device-info\ios\RNDeviceInfo",
"$(SRCROOT)\..\node_modules\react-native-camera\ios/**",
"$(SRCROOT)\..\node_modules\react-native-fetch-blob\ios/**",
"$(SRCROOT)\..\node_modules\react-native-svg\ios/**",
);
};
name = Debug;
@@ -1405,10 +1474,17 @@
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)\..\node_modules\react-native-code-push\ios\CodePush/**",
"$(SRCROOT)\..\node_modules\react-native-device-info\ios\RNDeviceInfo",
"$(SRCROOT)\..\node_modules\react-native-camera\ios/**",
"$(SRCROOT)\..\node_modules\react-native-fetch-blob\ios/**",
"$(SRCROOT)\..\node_modules\react-native-svg\ios/**",
);
};
name = Release;


+ 2
- 1
ios/screenAd/AppDelegate.h ファイルの表示

@@ -5,9 +5,10 @@
* LICENSE file in the root directory of this source tree.
*/

#import <React/RCTBridgeDelegate.h>
#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate>

@property (nonatomic, strong) UIWindow *window;



+ 15
- 13
ios/screenAd/AppDelegate.m ファイルの表示

@@ -8,6 +8,7 @@
#import "AppDelegate.h"
#import <CodePush/CodePush.h>

#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

@@ -15,20 +16,12 @@

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL *jsCodeLocation;
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
moduleName:@"screenAd"
initialProperties:nil];

#ifdef DEBUG
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
jsCodeLocation = [CodePush bundleURL];
#endif

RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"screenAd"
initialProperties:nil
launchOptions:launchOptions];
rootView.backgroundColor = [UIColor blackColor];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
@@ -38,4 +31,13 @@
return YES;
}

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
return [CodePush bundleURL];
#endif
}

@end

+ 17
- 0
metro.config.js ファイルの表示

@@ -0,0 +1,17 @@
/**
* Metro configuration for React Native
* https://github.com/facebook/react-native
*
* @format
*/

module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
};

+ 12110
- 0
package-lock.json
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 19
- 9
package.json ファイルの表示

@@ -7,17 +7,27 @@
"test": "jest"
},
"dependencies": {
"react": "16.6.3",
"react-native": "0.58.4",
"react-native-code-push": "^5.5.2",
"react-native-swiper": "^1.5.14"
"code-push": "2.0.7",
"react": "16.8.3",
"react-native": "0.59.9",
"react-native-animatable": "^1.3.2",
"react-native-camera": "^1.12.0",
"react-native-code-push": "5.6.1",
"react-native-device-info": "^2.1.2",
"react-native-shadow": "^1.2.2",
"react-native-snap-carousel": "^3.8.0",
"react-native-star-rating-view": "0.0.12",
"react-native-svg": "^9.6.2",
"react-native-swiper": "^1.5.14",
"rn-fetch-blob": "^0.10.15"
},
"devDependencies": {
"babel-core": "7.0.0-bridge.0",
"babel-jest": "24.1.0",
"jest": "24.1.0",
"metro-react-native-babel-preset": "0.51.1",
"react-test-renderer": "16.6.3"
"@babel/core": "^7.4.5",
"@babel/runtime": "^7.4.5",
"babel-jest": "^24.8.0",
"jest": "^24.8.0",
"metro-react-native-babel-preset": "^0.54.1",
"react-test-renderer": "16.8.3"
},
"jest": {
"preset": "react-native"


読み込み中…
キャンセル
保存