├── .watchmanconfig ├── .gitattributes ├── README.md ├── src ├── store │ ├── actionTypes.js │ ├── actionCreaters.js │ ├── index.js │ └── reducer.js ├── assets │ ├── images │ │ ├── QR.png │ │ ├── 小电视.png │ │ ├── black.jpg │ │ ├── timg.gif │ │ ├── horline.png │ │ ├── ic_empty.png │ │ ├── ic_null.png │ │ ├── jianbian.png │ │ ├── liveNext.png │ │ ├── livego.png │ │ ├── back_live.png │ │ ├── fengmian1.jpg │ │ ├── fengmian2.jpg │ │ ├── fengmian3.jpg │ │ ├── head_icon.jpg │ │ ├── ic_loading.png │ │ ├── ic_tv_play.png │ │ ├── partitions.png │ │ ├── splashpage.jpg │ │ ├── billiveperson.png │ │ ├── live_banner1.jpg │ │ ├── live_banner2.png │ │ ├── live_banner3.jpg │ │ ├── me_tv_sign_in.png │ │ ├── ic_player_coin.png │ │ ├── live_background.png │ │ ├── me_tv_sign_out.png │ │ ├── ic_loading_error.png │ │ ├── ic_tv_play_large.png │ │ ├── login_logo_account.png │ │ ├── bili_default_avatar.png │ │ ├── dynamic_login_guide.png │ │ ├── login_logo_password.png │ │ ├── bangumi_home_login_guide.png │ │ ├── img_tips_error_load_error.png │ │ └── ic_player_danmaku_input_options_rl_disabled.png │ └── icons │ │ ├── myiconfont.ttf │ │ ├── font_bilibili │ │ ├── iconfont.eot │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ └── iconfont.woff2 │ │ └── mybilibil_font │ │ └── font_1562172_onj4s86ncfd │ │ ├── iconfont.eot │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ ├── iconfont.woff2 │ │ └── iconfont.json ├── components │ ├── MemberBuy │ │ ├── FiveList.js │ │ ├── Swipe.js │ │ ├── Tabs.js │ │ ├── Search.js │ │ ├── Top.js │ │ ├── StickyHeader.js │ │ ├── ThreeList.js │ │ ├── TabsList.js │ │ ├── UnGoodList.js │ │ └── GoodList.js │ ├── ListItemUI.js │ ├── AppDraw │ │ └── land.js │ ├── BanMore.js │ ├── MovieThree.js │ ├── MovieOne.js │ └── MovieTwo.js ├── pages │ ├── Classify.js │ ├── HomePage.js │ ├── search_sub_pages │ │ └── SearchResult.js │ ├── home_sub_pages │ │ ├── Move.js │ │ └── Bangumi.js │ └── MemberBuy.js └── utils │ └── utils.js ├── app.json ├── .eslintrc.js ├── android ├── app │ ├── debug.keystore │ ├── src │ │ ├── main │ │ │ ├── res │ │ │ │ ├── raw │ │ │ │ │ ├── app.json │ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_evilicons.json │ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_zocial.json │ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_octicons.json │ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_simplelineicons.json │ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_feather.json │ │ │ │ │ ├── node_modules_reactnativevectoricons_glyphmaps_antdesign.json │ │ │ │ │ └── node_modules_reactnativevectoricons_glyphmaps_foundation.json │ │ │ │ ├── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ ├── src_assets_images_back_live.png │ │ │ │ │ ├── src_assets_images_horline.png │ │ │ │ │ ├── src_assets_images_jianbian.png │ │ │ │ │ ├── src_assets_images_livenext.png │ │ │ │ │ ├── src_assets_images_ic_tv_play.png │ │ │ │ │ ├── src_assets_images_billiveperson.png │ │ │ │ │ ├── src_assets_images_me_tv_sign_out.png │ │ │ │ │ ├── src_assets_images_bili_default_avatar.png │ │ │ │ │ ├── src_assets_images_bangumi_home_login_guide.png │ │ │ │ │ ├── node_modules_reactnativerouterflux_images_back_chevron.png │ │ │ │ │ ├── node_modules_reactnativerouterflux_images_menu_burger.png │ │ │ │ │ ├── node_modules_reactnavigationstack_dist_views_assets_backicon.png │ │ │ │ │ ├── node_modules_reactnative_libraries_newappscreen_components_logo.png │ │ │ │ │ └── node_modules_reactnavigationstack_dist_views_assets_backiconmask.png │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── node_modules_reactnavigationstack_dist_views_assets_backicon.png │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ └── node_modules_reactnavigationstack_dist_views_assets_backicon.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ └── node_modules_reactnavigationstack_dist_views_assets_backicon.png │ │ │ │ └── drawable-xxxhdpi │ │ │ │ │ └── node_modules_reactnavigationstack_dist_views_assets_backicon.png │ │ │ ├── assets │ │ │ │ └── fonts │ │ │ │ │ ├── Entypo.ttf │ │ │ │ │ ├── Feather.ttf │ │ │ │ │ ├── Roboto.ttf │ │ │ │ │ ├── Zocial.ttf │ │ │ │ │ ├── AntDesign.ttf │ │ │ │ │ ├── EvilIcons.ttf │ │ │ │ │ ├── Fontisto.ttf │ │ │ │ │ ├── Ionicons.ttf │ │ │ │ │ ├── Octicons.ttf │ │ │ │ │ ├── iconfont.ttf │ │ │ │ │ ├── FontAwesome.ttf │ │ │ │ │ ├── Foundation.ttf │ │ │ │ │ ├── myiconfont.ttf │ │ │ │ │ ├── MaterialIcons.ttf │ │ │ │ │ ├── Roboto_medium.ttf │ │ │ │ │ ├── SimpleLineIcons.ttf │ │ │ │ │ ├── rubicon-icon-font.ttf │ │ │ │ │ ├── FontAwesome5_Brands.ttf │ │ │ │ │ ├── FontAwesome5_Solid.ttf │ │ │ │ │ ├── FontAwesome5_Regular.ttf │ │ │ │ │ └── MaterialCommunityIcons.ttf │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── react_blibli │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── MainApplication.java │ │ │ └── AndroidManifest.xml │ │ └── debug │ │ │ └── AndroidManifest.xml │ ├── proguard-rules.pro │ ├── build_defs.bzl │ └── BUCK ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── settings.gradle ├── gradle.properties ├── build.gradle ├── gradlew.bat └── gradlew ├── babel.config.js ├── ios ├── react_blibli │ ├── Images.xcassets │ │ ├── Contents.json │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── AppDelegate.h │ ├── main.m │ ├── AppDelegate.m │ ├── Info.plist │ └── Base.lproj │ │ └── LaunchScreen.xib ├── react_blibliTests │ ├── Info.plist │ └── react_blibliTests.m ├── react_blibli-tvOSTests │ └── Info.plist ├── react_blibli-tvOS │ └── Info.plist ├── Podfile └── react_blibli.xcodeproj │ └── xcshareddata │ └── xcschemes │ ├── react_blibli.xcscheme │ └── react_blibli-tvOS.xcscheme ├── .buckconfig ├── .prettierrc.js ├── index.js ├── __tests__ └── App-test.js ├── metro.config.js ├── .gitignore ├── package.json ├── .flowconfig ├── router.js └── App.js /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.pbxproj -text 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | react-native link 4 | 5 | react-native run-android -------------------------------------------------------------------------------- /src/store/actionTypes.js: -------------------------------------------------------------------------------- 1 | // export const CHANGE_TAB_LOCK = 'changeTabLock' 2 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react_blibli", 3 | "displayName": "react_blibli" 4 | } -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: '@react-native-community', 4 | }; 5 | -------------------------------------------------------------------------------- /src/assets/images/QR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/QR.png -------------------------------------------------------------------------------- /src/assets/images/小电视.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/小电视.png -------------------------------------------------------------------------------- /android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/debug.keystore -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:metro-react-native-babel-preset'], 3 | }; 4 | -------------------------------------------------------------------------------- /src/assets/images/black.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/black.jpg -------------------------------------------------------------------------------- /src/assets/images/timg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/timg.gif -------------------------------------------------------------------------------- /android/app/src/main/res/raw/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react_blibli", 3 | "displayName": "react_blibli" 4 | } -------------------------------------------------------------------------------- /src/assets/images/horline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/horline.png -------------------------------------------------------------------------------- /src/assets/images/ic_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_empty.png -------------------------------------------------------------------------------- /src/assets/images/ic_null.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_null.png -------------------------------------------------------------------------------- /src/assets/images/jianbian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/jianbian.png -------------------------------------------------------------------------------- /src/assets/images/liveNext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/liveNext.png -------------------------------------------------------------------------------- /src/assets/images/livego.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/livego.png -------------------------------------------------------------------------------- /src/assets/icons/myiconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/myiconfont.ttf -------------------------------------------------------------------------------- /src/assets/images/back_live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/back_live.png -------------------------------------------------------------------------------- /src/assets/images/fengmian1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/fengmian1.jpg -------------------------------------------------------------------------------- /src/assets/images/fengmian2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/fengmian2.jpg -------------------------------------------------------------------------------- /src/assets/images/fengmian3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/fengmian3.jpg -------------------------------------------------------------------------------- /src/assets/images/head_icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/head_icon.jpg -------------------------------------------------------------------------------- /src/assets/images/ic_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_loading.png -------------------------------------------------------------------------------- /src/assets/images/ic_tv_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_tv_play.png -------------------------------------------------------------------------------- /src/assets/images/partitions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/partitions.png -------------------------------------------------------------------------------- /src/assets/images/splashpage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/splashpage.jpg -------------------------------------------------------------------------------- /src/assets/images/billiveperson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/billiveperson.png -------------------------------------------------------------------------------- /src/assets/images/live_banner1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/live_banner1.jpg -------------------------------------------------------------------------------- /src/assets/images/live_banner2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/live_banner2.png -------------------------------------------------------------------------------- /src/assets/images/live_banner3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/live_banner3.jpg -------------------------------------------------------------------------------- /src/assets/images/me_tv_sign_in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/me_tv_sign_in.png -------------------------------------------------------------------------------- /src/assets/images/ic_player_coin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_player_coin.png -------------------------------------------------------------------------------- /src/assets/images/live_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/live_background.png -------------------------------------------------------------------------------- /src/assets/images/me_tv_sign_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/me_tv_sign_out.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | react_blibli 3 | 4 | -------------------------------------------------------------------------------- /ios/react_blibli/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/assets/images/ic_loading_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_loading_error.png -------------------------------------------------------------------------------- /src/assets/images/ic_tv_play_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_tv_play_large.png -------------------------------------------------------------------------------- /src/assets/images/login_logo_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/login_logo_account.png -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /src/assets/images/bili_default_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/bili_default_avatar.png -------------------------------------------------------------------------------- /src/assets/images/dynamic_login_guide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/dynamic_login_guide.png -------------------------------------------------------------------------------- /src/assets/images/login_logo_password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/login_logo_password.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Entypo.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Feather.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Roboto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Roboto.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Zocial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Zocial.ttf -------------------------------------------------------------------------------- /src/assets/icons/font_bilibili/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/font_bilibili/iconfont.eot -------------------------------------------------------------------------------- /src/assets/icons/font_bilibili/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/font_bilibili/iconfont.ttf -------------------------------------------------------------------------------- /src/assets/icons/font_bilibili/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/font_bilibili/iconfont.woff -------------------------------------------------------------------------------- /src/assets/icons/font_bilibili/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/font_bilibili/iconfont.woff2 -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/AntDesign.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/AntDesign.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/EvilIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/EvilIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Fontisto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Fontisto.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Ionicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Octicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/iconfont.ttf -------------------------------------------------------------------------------- /src/assets/images/bangumi_home_login_guide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/bangumi_home_login_guide.png -------------------------------------------------------------------------------- /src/assets/images/img_tips_error_load_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/img_tips_error_load_error.png -------------------------------------------------------------------------------- /.buckconfig: -------------------------------------------------------------------------------- 1 | 2 | [android] 3 | target = Google Inc.:Google APIs:23 4 | 5 | [maven_repositories] 6 | central = https://repo1.maven.org/maven2 7 | -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Foundation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Foundation.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/myiconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/myiconfont.ttf -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | bracketSpacing: false, 3 | jsxBracketSameLine: true, 4 | singleQuote: true, 5 | trailingComma: 'all', 6 | }; 7 | -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/MaterialIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Roboto_medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/Roboto_medium.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SimpleLineIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/SimpleLineIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/rubicon-icon-font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/rubicon-icon-font.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/assets/images/ic_player_danmaku_input_options_rl_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/images/ic_player_danmaku_input_options_rl_disabled.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/src_assets_images_back_live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_back_live.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/src_assets_images_horline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_horline.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/src_assets_images_jianbian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_jianbian.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/src_assets_images_livenext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_livenext.png -------------------------------------------------------------------------------- /src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.eot -------------------------------------------------------------------------------- /src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.ttf -------------------------------------------------------------------------------- /src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.woff -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/src_assets_images_ic_tv_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_ic_tv_play.png -------------------------------------------------------------------------------- /src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.woff2 -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/src_assets_images_billiveperson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_billiveperson.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/src_assets_images_me_tv_sign_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_me_tv_sign_out.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/src_assets_images_bili_default_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_bili_default_avatar.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/src_assets_images_bangumi_home_login_guide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/src_assets_images_bangumi_home_login_guide.png -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'react_blibli' 2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) 3 | include ':app' 4 | -------------------------------------------------------------------------------- /src/store/actionCreaters.js: -------------------------------------------------------------------------------- 1 | // import { 2 | // CHANGE_TAB_LOCK 3 | // } from './actionTypes'; 4 | 5 | // export const changeTabLockAction = (value) => ({ 6 | // type: CHANGE_TAB_LOCK, 7 | // value 8 | // }) 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/node_modules_reactnativerouterflux_images_back_chevron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/node_modules_reactnativerouterflux_images_back_chevron.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/node_modules_reactnativerouterflux_images_menu_burger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/node_modules_reactnativerouterflux_images_menu_burger.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-hdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_newappscreen_components_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_newappscreen_components_logo.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/node_modules_reactnavigationstack_dist_views_assets_backiconmask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigationstack_dist_views_assets_backiconmask.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RizhSong/React-YY/HEAD/android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-all.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import {AppRegistry} from 'react-native'; 6 | // import App from './App'; 7 | import App from './router'; 8 | import {name as AppName} from './app.json'; 9 | 10 | AppRegistry.registerComponent(AppName, () => App); 11 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /__tests__/App-test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import 'react-native'; 6 | import React from 'react'; 7 | import App from '../App'; 8 | 9 | // Note: test renderer must be required after react-native. 10 | import renderer from 'react-test-renderer'; 11 | 12 | it('renders correctly', () => { 13 | renderer.create(); 14 | }); 15 | -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Metro configuration for React Native 3 | * https://github.com/facebook/react-native 4 | * 5 | * @format 6 | */ 7 | 8 | module.exports = { 9 | transformer: { 10 | getTransformOptions: async () => ({ 11 | transform: { 12 | experimentalImportSupport: false, 13 | inlineRequires: false, 14 | }, 15 | }), 16 | }, 17 | }; 18 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import { 2 | createStore, 3 | applyMiddleware, //使用redux 中间件 4 | compose 5 | } from 'redux'; 6 | import reducer from './reducer'; 7 | import thunk from 'redux-thunk' 8 | 9 | const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; 10 | const enhancer = composeEnhancers(applyMiddleware(thunk)); 11 | 12 | const store = createStore( 13 | reducer, 14 | enhancer 15 | ); 16 | 17 | export default store; -------------------------------------------------------------------------------- /android/app/src/main/java/com/react_blibli/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.react_blibli; 2 | 3 | import com.facebook.react.ReactActivity; 4 | 5 | public class MainActivity extends ReactActivity { 6 | 7 | /** 8 | * Returns the name of the main component registered from JavaScript. This is used to schedule 9 | * rendering of the component. 10 | */ 11 | @Override 12 | protected String getMainComponentName() { 13 | return "react_blibli"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ios/react_blibli/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (nonatomic, strong) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /ios/react_blibli/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import 9 | 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | -------------------------------------------------------------------------------- /src/store/reducer.js: -------------------------------------------------------------------------------- 1 | // const defaultState = { 2 | // locked: false 3 | // } 4 | 5 | // export default (state = defaultState, action) => { 6 | // //reduser里只能接受state 不能直接改变state 7 | // //reduser是纯函数 8 | // console.warn(action.value); 9 | 10 | // // if (action.type === 'changeTabLock') { 11 | // let { ...newState } = state; //先拷贝一份state 12 | // // let newState = JSON.parse(JSON.stringify(state)); // 深度拷贝 13 | // console.warn(newState, '----------'); 14 | // newState.locked = action.value; 15 | // return newState 16 | // // } 17 | 18 | // // return state 19 | // } -------------------------------------------------------------------------------- /android/app/build_defs.bzl: -------------------------------------------------------------------------------- 1 | """Helper definitions to glob .aar and .jar targets""" 2 | 3 | def create_aar_targets(aarfiles): 4 | for aarfile in aarfiles: 5 | name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] 6 | lib_deps.append(":" + name) 7 | android_prebuilt_aar( 8 | name = name, 9 | aar = aarfile, 10 | ) 11 | 12 | def create_jar_targets(jarfiles): 13 | for jarfile in jarfiles: 14 | name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] 15 | lib_deps.append(":" + name) 16 | prebuilt_jar( 17 | name = name, 18 | binary_jar = jarfile, 19 | ) 20 | -------------------------------------------------------------------------------- /ios/react_blibli/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /ios/react_blibliTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /ios/react_blibli-tvOSTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | 20 | android.useAndroidX=true 21 | android.enableJetifier=true 22 | -------------------------------------------------------------------------------- /src/components/MemberBuy/FiveList.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { 3 | View, 4 | Text, 5 | FlatList, 6 | Image 7 | } from 'react-native' 8 | 9 | const FiveList = (props) => { 10 | return ( 11 | 12 | { 16 | return ( 17 | 21 | 22 | {item.name} 23 | 24 | ) 25 | }} 26 | /> 27 | 28 | ) 29 | } 30 | 31 | export default FiveList -------------------------------------------------------------------------------- /src/components/MemberBuy/Swipe.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { 3 | View, 4 | StyleSheet, 5 | Image, 6 | // Carousel, 7 | Dimensions 8 | } from 'react-native' 9 | import Carousel from 'react-native-banner-carousel'; 10 | import { hidden } from 'colorette'; 11 | const BannerWidth = Dimensions.get('window').width; 12 | 13 | const Swipe = (props) => { 14 | return ( 15 | 16 | 24 | {props.banners.map((banners, index) => props.renderPage(banners, index))} 25 | 26 | 27 | 28 | ) 29 | 30 | } 31 | const styles = StyleSheet.create({ 32 | 33 | 34 | }) 35 | export default Swipe -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | 24 | # Android/IntelliJ 25 | # 26 | build/ 27 | .idea 28 | .gradle 29 | local.properties 30 | *.iml 31 | 32 | # node.js 33 | # 34 | node_modules/ 35 | npm-debug.log 36 | yarn-error.log 37 | 38 | # BUCK 39 | buck-out/ 40 | \.buckd/ 41 | *.keystore 42 | !debug.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://docs.fastlane.tools/best-practices/source-control/ 50 | 51 | */fastlane/report.xml 52 | */fastlane/Preview.html 53 | */fastlane/screenshots 54 | 55 | # Bundle artifact 56 | *.jsbundle 57 | 58 | # CocoaPods 59 | /ios/Pods/ 60 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 13 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/components/MemberBuy/Tabs.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { 3 | View, 4 | StyleSheet, 5 | Text, 6 | Image, 7 | // Carousel, 8 | Dimensions 9 | } from 'react-native' 10 | 11 | 12 | 13 | const Tabs = (props) => { 14 | return ( 15 | 16 | 17 | 18 | 商品 19 | 20 | 21 | 22 | 推荐 23 | 24 | 25 | 26 | ) 27 | 28 | } 29 | const styles = StyleSheet.create({ 30 | 31 | 32 | }) 33 | export default Tabs -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | ext { 5 | buildToolsVersion = "28.0.3" 6 | minSdkVersion = 16 7 | compileSdkVersion = 28 8 | targetSdkVersion = 28 9 | } 10 | repositories { 11 | google() 12 | jcenter() 13 | } 14 | dependencies { 15 | classpath("com.android.tools.build:gradle:3.4.2") 16 | 17 | // NOTE: Do not place your application dependencies here; they belong 18 | // in the individual module build.gradle files 19 | } 20 | } 21 | 22 | allprojects { 23 | repositories { 24 | mavenLocal() 25 | maven { 26 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm 27 | url("$rootDir/../node_modules/react-native/android") 28 | } 29 | maven { 30 | // Android JSC is installed from npm 31 | url("$rootDir/../node_modules/jsc-android/dist") 32 | } 33 | 34 | google() 35 | jcenter() 36 | maven { url 'https://jitpack.io' } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/components/MemberBuy/Search.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { 3 | View, 4 | StyleSheet, 5 | } from 'react-native' 6 | 7 | import { Item, Input, Icon, } from 'native-base'; 8 | 9 | 10 | const Search = () => { 11 | return ( 12 | 13 | 14 | 15 | 16 | 17 | 18 | ) 19 | } 20 | const styles = StyleSheet.create({ 21 | search: { 22 | flexDirection: 'row', 23 | backgroundColor: "#EEEEEE", 24 | marginTop: 10, 25 | marginBottom: 10, 26 | width: '95%', 27 | marginLeft: "auto", 28 | marginRight: "auto", 29 | borderRadius: 100, 30 | }, 31 | searchIcon: { 32 | flex: 2, 33 | textAlign: "right", 34 | fontSize: 18, 35 | marginRight: 10, 36 | color: '#F06292', 37 | }, 38 | searchInput: { 39 | height: 35, 40 | flex: 5, 41 | fontSize: 10, 42 | position: "relative", 43 | top: 0 44 | }, 45 | 46 | }) 47 | export default Search 48 | 49 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactDemo1", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "android": "react-native run-android", 7 | "ios": "react-native run-ios", 8 | "start": "react-native start", 9 | "test": "jest", 10 | "lint": "eslint ." 11 | }, 12 | "dependencies": { 13 | "moment": "^2.24.0", 14 | "native-base": "^2.13.8", 15 | "react": "16.9.0", 16 | "react-native": "0.61.5", 17 | "react-native-banner-carousel": "^1.0.3", 18 | "react-native-md5": "^1.0.0", 19 | "react-native-modal-dropdown": "^0.7.0", 20 | "react-native-orientation": "^3.1.3", 21 | "react-native-router-flux": "^4.0.6", 22 | "react-native-scrollable-tab-view": "^1.0.0", 23 | "react-native-tab-navigator": "^0.3.4", 24 | "react-native-vector-icons": "^6.6.0", 25 | "react-native-video": "^5.0.2" 26 | }, 27 | "devDependencies": { 28 | "@babel/core": "^7.7.4", 29 | "@babel/runtime": "^7.7.4", 30 | "@react-native-community/eslint-config": "^0.0.5", 31 | "babel-jest": "^24.9.0", 32 | "eslint": "^6.7.2", 33 | "jest": "^24.9.0", 34 | "metro-react-native-babel-preset": "^0.57.0", 35 | "react-test-renderer": "16.9.0" 36 | }, 37 | "jest": { 38 | "preset": "react-native" 39 | } 40 | } -------------------------------------------------------------------------------- /src/components/MemberBuy/Top.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { 3 | View, 4 | StyleSheet, 5 | Text 6 | } from 'react-native' 7 | 8 | import { Icon, } from 'native-base'; 9 | 10 | 11 | const Top = () => { 12 | return ( 13 | 14 | 15 | 16 | 会员购 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | ) 32 | } 33 | const styles = StyleSheet.create({ 34 | 35 | }) 36 | export default Top 37 | 38 | -------------------------------------------------------------------------------- /android/app/BUCK: -------------------------------------------------------------------------------- 1 | # To learn about Buck see [Docs](https://buckbuild.com/). 2 | # To run your application with Buck: 3 | # - install Buck 4 | # - `npm start` - to start the packager 5 | # - `cd android` 6 | # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` 7 | # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck 8 | # - `buck install -r android/app` - compile, install and run application 9 | # 10 | 11 | load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") 12 | 13 | lib_deps = [] 14 | 15 | create_aar_targets(glob(["libs/*.aar"])) 16 | 17 | create_jar_targets(glob(["libs/*.jar"])) 18 | 19 | android_library( 20 | name = "all-libs", 21 | exported_deps = lib_deps, 22 | ) 23 | 24 | android_library( 25 | name = "app-code", 26 | srcs = glob([ 27 | "src/main/java/**/*.java", 28 | ]), 29 | deps = [ 30 | ":all-libs", 31 | ":build_config", 32 | ":res", 33 | ], 34 | ) 35 | 36 | android_build_config( 37 | name = "build_config", 38 | package = "com.react_blibli", 39 | ) 40 | 41 | android_resource( 42 | name = "res", 43 | package = "com.react_blibli", 44 | res = "src/main/res", 45 | ) 46 | 47 | android_binary( 48 | name = "app", 49 | keystore = "//android/keystores:debug", 50 | manifest = "src/main/AndroidManifest.xml", 51 | package_type = "debug", 52 | deps = [ 53 | ":app-code", 54 | ], 55 | ) 56 | -------------------------------------------------------------------------------- /ios/react_blibli/AppDelegate.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import "AppDelegate.h" 9 | 10 | #import 11 | #import 12 | #import 13 | 14 | @implementation AppDelegate 15 | 16 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 17 | { 18 | RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; 19 | RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge 20 | moduleName:@"react_blibli" 21 | initialProperties:nil]; 22 | 23 | rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; 24 | 25 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 26 | UIViewController *rootViewController = [UIViewController new]; 27 | rootViewController.view = rootView; 28 | self.window.rootViewController = rootViewController; 29 | [self.window makeKeyAndVisible]; 30 | return YES; 31 | } 32 | 33 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge 34 | { 35 | #if DEBUG 36 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; 37 | #else 38 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 39 | #endif 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /src/components/MemberBuy/StickyHeader.js: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import {StyleSheet, Animated} from "react-native"; 3 | 4 | /** 5 | * 滑动吸顶效果组件 6 | * @export 7 | * @class StickyHeader 8 | */ 9 | export default class StickyHeader extends React.Component { 10 | 11 | static defaultProps = { 12 | stickyHeaderY: -1, 13 | stickyScrollY: new Animated.Value(0), 14 | }; 15 | 16 | constructor(props) { 17 | super(props); 18 | this.state = { 19 | stickyLayoutY: 0, 20 | }; 21 | } 22 | 23 | // 兼容代码,防止没有传头部高度 24 | _onLayout = (event) => { 25 | this.setState({ 26 | stickyLayoutY: event.nativeEvent.layout.y, 27 | }); 28 | }; 29 | 30 | render() { 31 | const {stickyHeaderY, stickyScrollY, children, style} = this.props; 32 | const {stickyLayoutY} = this.state; 33 | let y = stickyHeaderY !== -1 ? stickyHeaderY : stickyLayoutY; 34 | const translateY = stickyScrollY.interpolate({ 35 | inputRange: [-1, 0, y, y + 1], 36 | outputRange: [0, 0, 0, 1], 37 | }); 38 | 39 | return ( 40 | 49 | 50 | {children} 51 | 52 | 53 | ) 54 | } 55 | } 56 | 57 | const styles = StyleSheet.create({ 58 | container: { 59 | zIndex: 100 60 | }, 61 | }); -------------------------------------------------------------------------------- /ios/react_blibli-tvOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | NSAppTransportSecurity 26 | 27 | NSExceptionDomains 28 | 29 | localhost 30 | 31 | NSExceptionAllowsInsecureHTTPLoads 32 | 33 | 34 | 35 | 36 | NSLocationWhenInUseUsageDescription 37 | 38 | UILaunchStoryboardName 39 | LaunchScreen 40 | UIRequiredDeviceCapabilities 41 | 42 | armv7 43 | 44 | UISupportedInterfaceOrientations 45 | 46 | UIInterfaceOrientationPortrait 47 | UIInterfaceOrientationLandscapeLeft 48 | UIInterfaceOrientationLandscapeRight 49 | 50 | UIViewControllerBasedStatusBarAppearance 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/components/MemberBuy/ThreeList.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { 3 | View, 4 | StyleSheet, 5 | Image 6 | } from 'react-native' 7 | 8 | const ThreeList = (props) => { 9 | return ( 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | ) 22 | } 23 | const styles = StyleSheet.create({ 24 | unknown: { 25 | flexDirection: "row", 26 | }, 27 | unknownOptions: { 28 | flex: 1, 29 | marginRight: 10, 30 | width: 100, 31 | // alignItems: 'center', 32 | // overflow: "hidden", 33 | // borderWidth:1, 34 | borderRadius: 5, 35 | marginTop: 10 36 | 37 | }, 38 | unknownThree: { 39 | marginRight: 0 40 | }, 41 | unknownOptionsOne: { 42 | 43 | }, 44 | unknownOptionsTwo: { 45 | fontSize: 10 46 | }, 47 | unknownOptionsThree: { 48 | position: "absolute", 49 | right: 10, 50 | bottom: 6, 51 | fontSize: 20 52 | } 53 | 54 | }) 55 | export default ThreeList -------------------------------------------------------------------------------- /src/components/MemberBuy/TabsList.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import GoodList from '../../components/MemberBuy/GoodList'; 3 | import UnGoodList from '../../components/MemberBuy/UnGoodList'; 4 | import { 5 | View, 6 | StyleSheet, 7 | Image, 8 | Dimensions, 9 | Text 10 | } from 'react-native' 11 | import { Container, Item, Input, Header, Tab, Tabs, ScrollableTab, Icon, } from 'native-base'; 12 | const BannerWidth = Dimensions.get('window').width; 13 | 14 | const TabsList = (props) => { 15 | return ( 16 | 17 | {/* {this.state.isShow ? this._renderView : null} */} 18 | props.list.tabChange()} 25 | tabBarUnderlineStyle={{ backgroundColor: "red", width: 10, marginLeft: "7.5%" }} 26 | renderTabBar={() => }> 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | ) 39 | } 40 | const styles = StyleSheet.create({ 41 | 42 | }) 43 | export default TabsList -------------------------------------------------------------------------------- /android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_evilicons.json: -------------------------------------------------------------------------------- 1 | { 2 | "archive": 61696, 3 | "arrow-down": 61697, 4 | "arrow-left": 61698, 5 | "arrow-right": 61699, 6 | "arrow-up": 61700, 7 | "bell": 61701, 8 | "calendar": 61702, 9 | "camera": 61703, 10 | "cart": 61704, 11 | "chart": 61705, 12 | "check": 61706, 13 | "chevron-down": 61707, 14 | "chevron-left": 61708, 15 | "chevron-right": 61709, 16 | "chevron-up": 61710, 17 | "clock": 61711, 18 | "close": 61712, 19 | "close-o": 61713, 20 | "comment": 61714, 21 | "credit-card": 61715, 22 | "envelope": 61716, 23 | "exclamation": 61717, 24 | "external-link": 61718, 25 | "eye": 61719, 26 | "gear": 61720, 27 | "heart": 61721, 28 | "image": 61722, 29 | "like": 61723, 30 | "link": 61724, 31 | "location": 61725, 32 | "lock": 61726, 33 | "minus": 61727, 34 | "navicon": 61728, 35 | "paperclip": 61729, 36 | "pencil": 61730, 37 | "play": 61731, 38 | "plus": 61732, 39 | "pointer": 61733, 40 | "question": 61734, 41 | "redo": 61735, 42 | "refresh": 61736, 43 | "retweet": 61737, 44 | "sc-facebook": 61738, 45 | "sc-github": 61739, 46 | "sc-google-plus": 61740, 47 | "sc-instagram": 61741, 48 | "sc-linkedin": 61742, 49 | "sc-odnoklassniki": 61743, 50 | "sc-pinterest": 61744, 51 | "sc-skype": 61745, 52 | "sc-soundcloud": 61746, 53 | "sc-telegram": 61747, 54 | "sc-tumblr": 61748, 55 | "sc-twitter": 61749, 56 | "sc-vimeo": 61750, 57 | "sc-vk": 61751, 58 | "sc-youtube": 61752, 59 | "search": 61753, 60 | "share-apple": 61754, 61 | "share-google": 61755, 62 | "spinner": 61756, 63 | "spinner-2": 61757, 64 | "spinner-3": 61758, 65 | "star": 61759, 66 | "tag": 61760, 67 | "trash": 61761, 68 | "trophy": 61762, 69 | "undo": 61763, 70 | "unlock": 61764, 71 | "user": 61765 72 | } -------------------------------------------------------------------------------- /src/pages/Classify.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { View, Text, FlatList, Image, StyleSheet } from 'react-native' 3 | 4 | class Classify extends Component { 5 | constructor(props) { 6 | super(props); 7 | this.state = { 8 | channels: [], // 频道列表 9 | } 10 | 11 | } 12 | render() { 13 | return ( 14 | 15 | i} // 解决 key 问题 18 | renderItem={({ item }) => this.renderItem(item)} // 调用方法,去渲染每一项 19 | numColumns={4} // 多列布局(4列) 20 | //columnWrapperStyle={{}} // 每一行容器的样式 21 | /> 22 | 23 | 24 | ); 25 | } 26 | 27 | componentWillMount() { 28 | this.getChannels() 29 | } 30 | 31 | // 获取频道列表 32 | getChannels = () => { 33 | const url = 'https://app.bilibili.com/x/channel/square?appkey=1d8b6e7d45233436&build=5370000&channel=huawei&login_event=1&mobi_app=android&platform=android&ts=1557534415&sign=1f43ef46c4bf2d4d738ab7af0f809b3d' 34 | //在RN中要发送网络请求,可以直接用fetch() 35 | fetch(url) 36 | .then(res => res.json()) 37 | .then(data => { 38 | this.setState((state) => { 39 | return { 40 | isloading: false, 41 | channels: state.channels.concat(data.data.region) 42 | } 43 | }) 44 | }) 45 | } 46 | 47 | // 渲染每一个列表 48 | renderItem = (item) => { 49 | return 50 | 51 | 52 | {item.name} 53 | 54 | 55 | 56 | } 57 | } 58 | 59 | const styles = StyleSheet.create({ 60 | channelName: { 61 | fontSize: 12, 62 | }, 63 | }) 64 | 65 | export default Classify; -------------------------------------------------------------------------------- /src/utils/utils.js: -------------------------------------------------------------------------------- 1 | import md5 from "react-native-md5"; 2 | 3 | //得到sign的方法 4 | get_sign = (params, key) => { 5 | var s_keys = []; 6 | for (var i in params) { 7 | s_keys.push(i); 8 | } 9 | s_keys.sort(); 10 | var data = ""; 11 | for (var i = 0; i < s_keys.length; i++) { 12 | // encodeURIComponent 返回的转义数字必须为大写( 如 %2F ) 13 | data += (data ? "&" : "") + s_keys[i] + "=" + encodeURIComponent(params[s_keys[i]]); 14 | } 15 | return { 16 | "sign": md5.hex_md5(data + key), 17 | "params": data 18 | }; 19 | } 20 | 21 | //获取视频详情参数 22 | export const getVideoDetilUrl = (aid) => { 23 | let paramsObj = { 24 | // aid: "78126101", 25 | aid: aid, 26 | appkey: "1d8b6e7d45233436", 27 | build: "5480400", 28 | ts: new Date().getTime() 29 | } 30 | let appserct = "560c52ccd288fed045859ed18bffd973"; 31 | 32 | let signObj = get_sign(paramsObj, appserct); 33 | console.log(signObj); 34 | let path = "https://app.bilibili.com/x/v2/view"; 35 | let data = signObj.params; 36 | let sign = signObj.sign; 37 | let url = `${path}?${data}&sign=${sign}`; 38 | return url; 39 | } 40 | 41 | //获取视频播放参数 视频解析 42 | export const getVideoPlayerUrl = (cid, qn = 64) => { 43 | let appserctV2 = "aHRmhWMLkdeMuILqORnYZocwMBpMEOdt"; 44 | 45 | let vedioParamsObjV2 = { 46 | appkey: "iVGUTjsxvpLeuDCf", 47 | build: "500001", 48 | buvid: "C0928256-085D-4722-A38F-2E343710C8B3155817infoc", 49 | cid: cid, 50 | device: "android", 51 | otype: "json", 52 | platform: "android", 53 | qn: qn 54 | } 55 | let vedioSignObjV2 = get_sign(vedioParamsObjV2, appserctV2); 56 | let vedioPathV2 = "https://app.bilibili.com/playurl"; 57 | let vedioV2Data = vedioSignObjV2.params; 58 | let vedioV2Sign = vedioSignObjV2.sign; 59 | let vedioV2Url = `${vedioPathV2}?${vedioV2Data}&sign=${vedioV2Sign}`; 60 | return vedioV2Url; 61 | } 62 | 63 | 64 | 65 | // 数字格式化 66 | export const numFormat = (num, mode = 0) => { 67 | let formatNum = ''; 68 | if (mode === 0) { 69 | formatNum = num >= 10000 ? (num / 10000).toFixed(1) + '万' : num 70 | } 71 | return formatNum; 72 | } -------------------------------------------------------------------------------- /ios/react_blibliTests/react_blibliTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import 9 | #import 10 | 11 | #import 12 | #import 13 | 14 | #define TIMEOUT_SECONDS 600 15 | #define TEXT_TO_LOOK_FOR @"Welcome to React" 16 | 17 | @interface react_blibliTests : XCTestCase 18 | 19 | @end 20 | 21 | @implementation react_blibliTests 22 | 23 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test 24 | { 25 | if (test(view)) { 26 | return YES; 27 | } 28 | for (UIView *subview in [view subviews]) { 29 | if ([self findSubviewInView:subview matching:test]) { 30 | return YES; 31 | } 32 | } 33 | return NO; 34 | } 35 | 36 | - (void)testRendersWelcomeScreen 37 | { 38 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; 39 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; 40 | BOOL foundElement = NO; 41 | 42 | __block NSString *redboxError = nil; 43 | #ifdef DEBUG 44 | RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { 45 | if (level >= RCTLogLevelError) { 46 | redboxError = message; 47 | } 48 | }); 49 | #endif 50 | 51 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { 52 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 53 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 54 | 55 | foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { 56 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { 57 | return YES; 58 | } 59 | return NO; 60 | }]; 61 | } 62 | 63 | #ifdef DEBUG 64 | RCTSetLogFunction(RCTDefaultLogFunction); 65 | #endif 66 | 67 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); 68 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); 69 | } 70 | 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /src/components/MemberBuy/UnGoodList.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { 3 | View, 4 | Text, 5 | FlatList, 6 | Image, 7 | 8 | 9 | } from 'react-native' 10 | 11 | class GoodList extends Component { 12 | constructor(props) { 13 | super(props); 14 | this.state = { 15 | list: 0 16 | } 17 | 18 | } 19 | static defaultProps = { 20 | list: [] 21 | } 22 | render() { 23 | 24 | 25 | return ( 26 | 27 | this.renderItem(item)} 32 | ItemSeparatorComponent={this.renderSeparator} 33 | /> 34 | 35 | ); 36 | } 37 | 38 | renderItem(item) { 39 | return ( 40 | 41 | 42 | 43 | 44 | 45 | 46 | {item.title} 47 | 48 | 49 | ¥{item.price[0]} 50 | {item.want} 51 | 52 | 53 | 54 | ) 55 | } 56 | getList() { 57 | 58 | let arr=[] 59 | this.props.list.filter(item => { 60 | if (item.tagName == "展演") { 61 | 62 | arr.push(item) 63 | } 64 | }) 65 | 66 | 67 | 68 | return arr 69 | } 70 | componentDidMount() { 71 | 72 | } 73 | 74 | } 75 | 76 | export default GoodList; -------------------------------------------------------------------------------- /.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | ; We fork some components by platform 3 | .*/*[.]android.js 4 | 5 | ; Ignore "BUCK" generated dirs 6 | /\.buckd/ 7 | 8 | ; Ignore polyfills 9 | node_modules/react-native/Libraries/polyfills/.* 10 | 11 | ; These should not be required directly 12 | ; require from fbjs/lib instead: require('fbjs/lib/warning') 13 | node_modules/warning/.* 14 | 15 | ; Flow doesn't support platforms 16 | .*/Libraries/Utilities/LoadingView.js 17 | 18 | [untyped] 19 | .*/node_modules/@react-native-community/cli/.*/.* 20 | 21 | [include] 22 | 23 | [libs] 24 | node_modules/react-native/Libraries/react-native/react-native-interface.js 25 | node_modules/react-native/flow/ 26 | 27 | [options] 28 | emoji=true 29 | 30 | esproposal.optional_chaining=enable 31 | esproposal.nullish_coalescing=enable 32 | 33 | module.file_ext=.js 34 | module.file_ext=.json 35 | module.file_ext=.ios.js 36 | 37 | munge_underscores=true 38 | 39 | module.name_mapper='^react-native$' -> '/node_modules/react-native/Libraries/react-native/react-native-implementation' 40 | module.name_mapper='^react-native/\(.*\)$' -> '/node_modules/react-native/\1' 41 | module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub' 42 | 43 | suppress_type=$FlowIssue 44 | suppress_type=$FlowFixMe 45 | suppress_type=$FlowFixMeProps 46 | suppress_type=$FlowFixMeState 47 | 48 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\) 49 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+ 50 | suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError 51 | 52 | [lints] 53 | sketchy-null-number=warn 54 | sketchy-null-mixed=warn 55 | sketchy-number=warn 56 | untyped-type-import=warn 57 | nonstrict-import=warn 58 | deprecated-type=warn 59 | unsafe-getters-setters=warn 60 | inexact-spread=warn 61 | unnecessary-invariant=warn 62 | signature-verification-failure=warn 63 | deprecated-utility=error 64 | 65 | [strict] 66 | deprecated-type 67 | nonstrict-import 68 | sketchy-null 69 | unclear-type 70 | unsafe-getters-setters 71 | untyped-import 72 | untyped-type-import 73 | 74 | [version] 75 | ^0.105.0 76 | -------------------------------------------------------------------------------- /android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_zocial.json: -------------------------------------------------------------------------------- 1 | { 2 | "acrobat": 61696, 3 | "amazon": 61697, 4 | "android": 61698, 5 | "angellist": 61699, 6 | "aol": 61700, 7 | "appnet": 61701, 8 | "appstore": 61702, 9 | "bitbucket": 61703, 10 | "bitcoin": 61704, 11 | "blogger": 61705, 12 | "buffer": 61706, 13 | "cal": 61707, 14 | "call": 61708, 15 | "cart": 61709, 16 | "chrome": 61710, 17 | "cloudapp": 61711, 18 | "creativecommons": 61712, 19 | "delicious": 61713, 20 | "digg": 61714, 21 | "disqus": 61715, 22 | "dribbble": 61716, 23 | "dropbox": 61717, 24 | "drupal": 61718, 25 | "dwolla": 61720, 26 | "email": 61721, 27 | "eventasaurus": 61722, 28 | "eventbrite": 61723, 29 | "eventful": 61724, 30 | "evernote": 61725, 31 | "facebook": 61726, 32 | "fivehundredpx": 61727, 33 | "flattr": 61728, 34 | "flickr": 61729, 35 | "forrst": 61730, 36 | "foursquare": 61731, 37 | "github": 61732, 38 | "gmail": 61733, 39 | "google": 61734, 40 | "googleplay": 61735, 41 | "googleplus": 61736, 42 | "gowalla": 61737, 43 | "grooveshark": 61738, 44 | "guest": 61739, 45 | "html5": 61740, 46 | "ie": 61741, 47 | "instagram": 61742, 48 | "instapaper": 61743, 49 | "intensedebate": 61744, 50 | "itunes": 61745, 51 | "klout": 61746, 52 | "lanyrd": 61747, 53 | "lastfm": 61748, 54 | "lego": 61749, 55 | "linkedin": 61750, 56 | "lkdto": 61751, 57 | "logmein": 61752, 58 | "macstore": 61753, 59 | "meetup": 61754, 60 | "myspace": 61755, 61 | "ninetyninedesigns": 61756, 62 | "openid": 61757, 63 | "opentable": 61758, 64 | "paypal": 61759, 65 | "persona": 61796, 66 | "pinboard": 61760, 67 | "pinterest": 61761, 68 | "plancast": 61762, 69 | "plurk": 61763, 70 | "pocket": 61764, 71 | "podcast": 61765, 72 | "posterous": 61766, 73 | "print": 61767, 74 | "quora": 61768, 75 | "reddit": 61769, 76 | "rss": 61770, 77 | "scribd": 61771, 78 | "skype": 61772, 79 | "smashing": 61773, 80 | "songkick": 61774, 81 | "soundcloud": 61775, 82 | "spotify": 61776, 83 | "stackoverflow": 61777, 84 | "statusnet": 61778, 85 | "steam": 61779, 86 | "stripe": 61780, 87 | "stumbleupon": 61781, 88 | "tumblr": 61782, 89 | "twitter": 61783, 90 | "viadeo": 61784, 91 | "vimeo": 61785, 92 | "vk": 61786, 93 | "weibo": 61787, 94 | "wikipedia": 61788, 95 | "windows": 61789, 96 | "wordpress": 61790, 97 | "xing": 61791, 98 | "yahoo": 61792, 99 | "ycombinator": 61793, 100 | "yelp": 61794, 101 | "youtube": 61795 102 | } -------------------------------------------------------------------------------- /android/app/src/main/java/com/react_blibli/MainApplication.java: -------------------------------------------------------------------------------- 1 | package com.react_blibli; 2 | 3 | import android.app.Application; 4 | import android.content.Context; 5 | import com.facebook.react.PackageList; 6 | import com.facebook.react.ReactApplication; 7 | import com.facebook.react.ReactNativeHost; 8 | import com.facebook.react.ReactPackage; 9 | import com.facebook.soloader.SoLoader; 10 | import java.lang.reflect.InvocationTargetException; 11 | import java.util.List; 12 | 13 | public class MainApplication extends Application implements ReactApplication { 14 | 15 | private final ReactNativeHost mReactNativeHost = 16 | new ReactNativeHost(this) { 17 | @Override 18 | public boolean getUseDeveloperSupport() { 19 | return BuildConfig.DEBUG; 20 | } 21 | 22 | @Override 23 | protected List getPackages() { 24 | @SuppressWarnings("UnnecessaryLocalVariable") 25 | List packages = new PackageList(this).getPackages(); 26 | // Packages that cannot be autolinked yet can be added manually here, for example: 27 | // packages.add(new MyReactNativePackage()); 28 | return packages; 29 | } 30 | 31 | @Override 32 | protected String getJSMainModuleName() { 33 | return "index"; 34 | } 35 | }; 36 | 37 | @Override 38 | public ReactNativeHost getReactNativeHost() { 39 | return mReactNativeHost; 40 | } 41 | 42 | @Override 43 | public void onCreate() { 44 | super.onCreate(); 45 | SoLoader.init(this, /* native exopackage */ false); 46 | initializeFlipper(this); // Remove this line if you don't want Flipper enabled 47 | } 48 | 49 | /** 50 | * Loads Flipper in React Native templates. 51 | * 52 | * @param context 53 | */ 54 | private static void initializeFlipper(Context context) { 55 | if (BuildConfig.DEBUG) { 56 | try { 57 | /* 58 | We use reflection here to pick up the class that initializes Flipper, 59 | since Flipper library is not available in release mode 60 | */ 61 | Class aClass = Class.forName("com.facebook.flipper.ReactNativeFlipper"); 62 | aClass.getMethod("initializeFlipper", Context.class).invoke(null, context); 63 | } catch (ClassNotFoundException e) { 64 | e.printStackTrace(); 65 | } catch (NoSuchMethodException e) { 66 | e.printStackTrace(); 67 | } catch (IllegalAccessException e) { 68 | e.printStackTrace(); 69 | } catch (InvocationTargetException e) { 70 | e.printStackTrace(); 71 | } 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /ios/react_blibli/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | react_blibli 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | LSRequiresIPhoneOS 26 | 27 | NSAppTransportSecurity 28 | 29 | NSAllowsArbitraryLoads 30 | 31 | NSExceptionDomains 32 | 33 | localhost 34 | 35 | NSExceptionAllowsInsecureHTTPLoads 36 | 37 | 38 | 39 | 40 | NSLocationWhenInUseUsageDescription 41 | 42 | UILaunchStoryboardName 43 | LaunchScreen 44 | UIRequiredDeviceCapabilities 45 | 46 | armv7 47 | 48 | UISupportedInterfaceOrientations 49 | 50 | UIInterfaceOrientationPortrait 51 | UIInterfaceOrientationLandscapeLeft 52 | UIInterfaceOrientationLandscapeRight 53 | 54 | UIViewControllerBasedStatusBarAppearance 55 | 56 | UIAppFonts 57 | 58 | AntDesign.ttf 59 | Entypo.ttf 60 | EvilIcons.ttf 61 | Feather.ttf 62 | FontAwesome.ttf 63 | FontAwesome5_Brands.ttf 64 | FontAwesome5_Regular.ttf 65 | FontAwesome5_Solid.ttf 66 | Fontisto.ttf 67 | Foundation.ttf 68 | Ionicons.ttf 69 | MaterialCommunityIcons.ttf 70 | MaterialIcons.ttf 71 | Octicons.ttf 72 | Roboto_medium.ttf 73 | Roboto.ttf 74 | rubicon-icon-font.ttf 75 | SimpleLineIcons.ttf 76 | Zocial.ttf 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '9.0' 2 | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' 3 | 4 | target 'react_blibli' do 5 | # Pods for react_blibli 6 | pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector" 7 | pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec" 8 | pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired" 9 | pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety" 10 | pod 'React', :path => '../node_modules/react-native/' 11 | pod 'React-Core', :path => '../node_modules/react-native/' 12 | pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules' 13 | pod 'React-Core/DevSupport', :path => '../node_modules/react-native/' 14 | pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS' 15 | pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation' 16 | pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob' 17 | pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image' 18 | pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS' 19 | pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network' 20 | pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings' 21 | pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text' 22 | pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration' 23 | pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/' 24 | 25 | pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact' 26 | pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi' 27 | pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor' 28 | pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector' 29 | pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon" 30 | pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon" 31 | pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga' 32 | 33 | pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec' 34 | pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' 35 | pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec' 36 | 37 | target 'react_blibliTests' do 38 | inherit! :search_paths 39 | # Pods for testing 40 | end 41 | 42 | use_native_modules! 43 | end 44 | 45 | target 'react_blibli-tvOS' do 46 | # Pods for react_blibli-tvOS 47 | 48 | target 'react_blibli-tvOSTests' do 49 | inherit! :search_paths 50 | # Pods for testing 51 | end 52 | 53 | end 54 | -------------------------------------------------------------------------------- /router.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { Router, Stack, Scene, Tabs } from 'react-native-router-flux' 3 | import App from './App.js' 4 | 5 | import HomePage from './src/pages/HomePage'; 6 | import Classify from './src/pages/Classify'; 7 | import MemberBuy from './src/pages/MemberBuy'; 8 | import Dynamic from './src/pages/Search'; 9 | 10 | //视频播放页面 11 | import VideoPage from './src/pages/vidoe_player/VideoPage'; 12 | import Diantai from './src/pages/home_sub_pages/home_live/diantai' 13 | import BanMore from './src/components/BanMore.js'; 14 | 15 | class AppRouter extends Component { 16 | render() { 17 | return ( 18 | 19 | 20 | {/* hideNavBar */} 21 | 22 | 23 | 24 | 25 | 26 | {/* 27 | 42 | 47 | 48 | 53 | 54 | 59 | 64 | 65 | */} 66 | 67 | ); 68 | } 69 | } 70 | 71 | export default AppRouter; 72 | 73 | -------------------------------------------------------------------------------- /android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem http://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%" == "" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%" == "" set DIRNAME=. 29 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 33 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 34 | 35 | @rem Find java.exe 36 | if defined JAVA_HOME goto findJavaFromJavaHome 37 | 38 | set JAVA_EXE=java.exe 39 | %JAVA_EXE% -version >NUL 2>&1 40 | if "%ERRORLEVEL%" == "0" goto init 41 | 42 | echo. 43 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 44 | echo. 45 | echo Please set the JAVA_HOME variable in your environment to match the 46 | echo location of your Java installation. 47 | 48 | goto fail 49 | 50 | :findJavaFromJavaHome 51 | set JAVA_HOME=%JAVA_HOME:"=% 52 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 53 | 54 | if exist "%JAVA_EXE%" goto init 55 | 56 | echo. 57 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 58 | echo. 59 | echo Please set the JAVA_HOME variable in your environment to match the 60 | echo location of your Java installation. 61 | 62 | goto fail 63 | 64 | :init 65 | @rem Get command-line arguments, handling Windows variants 66 | 67 | if not "%OS%" == "Windows_NT" goto win9xME_args 68 | 69 | :win9xME_args 70 | @rem Slurp the command line arguments. 71 | set CMD_LINE_ARGS= 72 | set _SKIP=2 73 | 74 | :win9xME_args_slurp 75 | if "x%~1" == "x" goto execute 76 | 77 | set CMD_LINE_ARGS=%* 78 | 79 | :execute 80 | @rem Setup the command line 81 | 82 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 83 | 84 | @rem Execute Gradle 85 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 86 | 87 | :end 88 | @rem End local scope for the variables with windows NT shell 89 | if "%ERRORLEVEL%"=="0" goto mainEnd 90 | 91 | :fail 92 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 93 | rem the _cmd.exe /c_ return code! 94 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 95 | exit /b 1 96 | 97 | :mainEnd 98 | if "%OS%"=="Windows_NT" endlocal 99 | 100 | :omega 101 | -------------------------------------------------------------------------------- /src/components/MemberBuy/GoodList.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { 3 | View, 4 | Text, 5 | ScrollView, 6 | FlatList, 7 | Image, 8 | StyleSheet, 9 | TextInput, 10 | Dimensions, 11 | Button 12 | 13 | 14 | } from 'react-native' 15 | import { Colors } from 'react-native/Libraries/NewAppScreen'; 16 | const BannerWidth = Dimensions.get('window').width; 17 | class GoodList extends Component { 18 | constructor(props) { 19 | super(props); 20 | this.state = { 21 | list: 0 22 | } 23 | } 24 | static defaultProps = { 25 | list: [] 26 | } 27 | render() { 28 | 29 | 30 | return ( 31 | 32 | this.renderItem(item)} 37 | ItemSeparatorComponent={this.renderSeparator} 38 | // onEndReachedThreshold={0.5} 39 | // onEndReached={this.loadNextPage} 40 | /> 41 | {/* 42 | 加载更多 */} 43 | 44 | ); 45 | } 46 | 47 | renderItem(item) { 48 | return ( 49 | 50 | 51 | 52 | 53 | 54 | 55 | {item.title} 56 | 57 | 58 | ¥{item.price[0]} 59 | {item.like}人想要 60 | 61 | 62 | 63 | // 64 | // 65 | // 66 | // 67 | // 68 | // {item.title} 69 | // 70 | // 71 | // ¥{item.price[0]} 72 | // {item.like}人想要 73 | // 74 | // 75 | ) 76 | } 77 | getList() { 78 | let arr = this.props.list.map(item => { 79 | if (item.tagName == "商品") { 80 | return item 81 | } 82 | }) 83 | 84 | return arr 85 | } 86 | componentDidMount() { 87 | 88 | } 89 | 90 | } 91 | 92 | export default GoodList; -------------------------------------------------------------------------------- /ios/react_blibli/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 21 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/pages/HomePage.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { View, Text, StyleSheet } from 'react-native' 3 | 4 | import { Container, Tab, Tabs, ScrollableTab } from 'native-base'; 5 | 6 | import Live from './home_sub_pages/Live'; 7 | import Recommended from './home_sub_pages/Recommended'; 8 | import Hot from './home_sub_pages/Hot'; 9 | import Bangumi from './home_sub_pages/Bangumi'; 10 | import Move from './home_sub_pages/Move'; 11 | import SeventyYears from './home_sub_pages/SeventyYears'; 12 | 13 | 14 | class HomePage extends Component { 15 | constructor(props) { 16 | super(props); 17 | this.state = { 18 | scrollTabViewLocked: false 19 | } 20 | } 21 | 22 | _lockSlide = () => { 23 | this.setState({ 24 | scrollTabViewLocked: true 25 | }) 26 | } 27 | _openSlide = () => { 28 | this.setState({ 29 | scrollTabViewLocked: true 30 | }) 31 | } 32 | render() { 33 | return ( 34 | 35 | {/*
*/} 36 | }> 42 | 48 | 49 | 50 | 56 | 57 | 58 | 64 | 65 | 66 | 72 | 73 | 74 | 80 | 81 | 82 | 88 | 89 | 90 | 91 | 92 | ) 93 | } 94 | } 95 | const styles = StyleSheet.create({ 96 | tabBarUnderlineStyle: { 97 | backgroundColor: '#fb7b9e', 98 | marginLeft: '4%', 99 | height: 2.5, 100 | width: 20 101 | }, 102 | tabStyle: { 103 | backgroundColor: '#fff', 104 | // alignItems: 'center', 105 | paddingLeft: 10, 106 | paddingRight: 10 107 | }, 108 | activeTabStyle: { 109 | backgroundColor: '#fff', 110 | paddingLeft: 10, 111 | paddingRight: 10 112 | }, 113 | textStyle: { 114 | color: '#444' 115 | }, 116 | activeTextStyle: { 117 | color: '#fb7b9e', 118 | fontWeight: 'bold' 119 | }, 120 | tabsContainerStyle: { 121 | // width: 400, 122 | backgroundColor: '#fff' 123 | } 124 | }) 125 | 126 | export default HomePage; -------------------------------------------------------------------------------- /src/components/ListItemUI.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { View, Text, StyleSheet, Image } from 'react-native'; 3 | import { numFormat } from '../utils/utils'; 4 | 5 | class ListItemUI extends Component { 6 | constructor(props) { 7 | super(props); 8 | this.state = {} 9 | } 10 | render() { 11 | return ( 12 | 13 | 14 | 16 | {this.props.time} 17 | 18 | 19 | {this.props.title} 20 | 21 | 22 | 23 | {this.props.upname} 24 | 25 | 26 | 27 | {numFormat(this.props.playNum)} 28 | 29 | {this.props.danmaku} 30 | 31 | {this.props.tags ? 32 | 33 | {this.props.tags} 34 | 35 | : null 36 | } 37 | 38 | 39 | 40 | ); 41 | } 42 | } 43 | 44 | const styles = StyleSheet.create({ 45 | hotItem: { 46 | height: 120, 47 | borderBottomColor: '#f4f4f4', 48 | borderBottomWidth: 0.5, 49 | padding: 10, 50 | flexDirection: 'row' 51 | }, 52 | hotItemLeft: { 53 | width: '45%', 54 | height: '100%', 55 | position: 'relative' 56 | }, 57 | itemImage: { 58 | width: '100%', 59 | height: '100%', 60 | borderRadius: 5 61 | }, 62 | time: { 63 | position: 'absolute', 64 | bottom: 8, 65 | right: 5, 66 | fontSize: 12, 67 | padding: 4, 68 | paddingTop: 2, 69 | paddingBottom: 2, 70 | backgroundColor: 'rgba(0,0,0,0.4)', 71 | borderRadius: 2, 72 | color: '#fff' 73 | }, 74 | hotItemRight: { 75 | width: '55%', 76 | height: '100%', 77 | paddingLeft: 8, 78 | justifyContent: 'space-between' 79 | }, 80 | itemTitle: { 81 | fontSize: 14, 82 | color: '#000', 83 | width: '100%', 84 | overflow: 'hidden', 85 | }, 86 | desc: { 87 | marginLeft: 5, 88 | marginRight: 5, 89 | fontSize: 12, 90 | color: '#c4c4c4', 91 | }, 92 | rcmdReasonTextA: { 93 | marginTop: 2, 94 | paddingLeft: 2, 95 | paddingRight: 2, 96 | borderWidth: 1, 97 | borderRadius: 2, 98 | fontSize: 10, 99 | backgroundColor: '#f5992a', 100 | borderColor: '#f5992a', 101 | color: '#fff' 102 | }, 103 | // rcmdReasonTextB: { 104 | // paddingLeft: 2, 105 | // paddingRight: 2, 106 | // borderWidth: 1, 107 | // borderRadius: 2, 108 | // fontSize: 10, 109 | // bottom: 0, 110 | // left: 0, 111 | // position: 'absolute', 112 | // borderColor: '#fdd849', 113 | // color: '#fdd849' 114 | // }, 115 | lineBox: { 116 | flexDirection: 'row', 117 | alignItems: 'center' 118 | } 119 | }) 120 | 121 | export default ListItemUI; -------------------------------------------------------------------------------- /src/components/AppDraw/land.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { Text, View, Image } from 'react-native'; 3 | import { Item } from 'native-base'; 4 | 5 | class Land extends Component { 6 | constructor(props) { 7 | super(props); 8 | this.state = { 9 | data: [ 10 | { 11 | name: '主页', 12 | }, 13 | { 14 | name: '历史记录', 15 | }, 16 | { 17 | name: '离线缓存', 18 | }, 19 | { 20 | name: '我的收藏', 21 | }, 22 | { 23 | name: '稍后再看', 24 | } 25 | ] 26 | } 27 | } 28 | render() { 29 | return ( 30 | 31 | 32 | 33 | 34 | 未登录 35 | 点击头像登陆 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | { 49 | this.state.data.map((item, index) => { 50 | return ( 51 | {item.name} 52 | ) 53 | })} 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 投稿 66 | 我的订单 67 | 直播中心 68 | 69 | 70 | 71 | 72 | 73 | 设置 74 | 75 | 主题 76 | 77 | 夜间 78 | 79 | 80 | 81 | 82 | 83 | ) 84 | 85 | } 86 | } 87 | 88 | export default Land; 89 | -------------------------------------------------------------------------------- /android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_octicons.json: -------------------------------------------------------------------------------- 1 | { 2 | "alert": 61696, 3 | "archive": 61697, 4 | "arrow-both": 61698, 5 | "arrow-down": 61699, 6 | "arrow-left": 61700, 7 | "arrow-right": 61701, 8 | "arrow-small-down": 61702, 9 | "arrow-small-left": 61703, 10 | "arrow-small-right": 61704, 11 | "arrow-small-up": 61705, 12 | "arrow-up": 61706, 13 | "beaker": 61707, 14 | "bell": 61708, 15 | "bold": 61709, 16 | "book": 61710, 17 | "bookmark": 61711, 18 | "briefcase": 61712, 19 | "broadcast": 61713, 20 | "browser": 61714, 21 | "bug": 61715, 22 | "calendar": 61716, 23 | "check": 61717, 24 | "checklist": 61718, 25 | "chevron-down": 61719, 26 | "chevron-left": 61720, 27 | "chevron-right": 61721, 28 | "chevron-up": 61722, 29 | "circle-slash": 61723, 30 | "circuit-board": 61724, 31 | "clippy": 61725, 32 | "clock": 61726, 33 | "cloud-download": 61727, 34 | "cloud-upload": 61728, 35 | "code": 61729, 36 | "comment": 61730, 37 | "comment-discussion": 61731, 38 | "credit-card": 61732, 39 | "dash": 61733, 40 | "dashboard": 61734, 41 | "database": 61735, 42 | "desktop-download": 61736, 43 | "device-camera": 61737, 44 | "device-camera-video": 61738, 45 | "device-desktop": 61739, 46 | "device-mobile": 61740, 47 | "diff": 61741, 48 | "diff-added": 61742, 49 | "diff-ignored": 61743, 50 | "diff-modified": 61744, 51 | "diff-removed": 61745, 52 | "diff-renamed": 61746, 53 | "ellipsis": 61747, 54 | "eye": 61748, 55 | "eye-closed": 61749, 56 | "file": 61750, 57 | "file-binary": 61751, 58 | "file-code": 61752, 59 | "file-directory": 61753, 60 | "file-media": 61754, 61 | "file-pdf": 61755, 62 | "file-submodule": 61756, 63 | "file-symlink-directory": 61757, 64 | "file-symlink-file": 61758, 65 | "file-zip": 61759, 66 | "flame": 61760, 67 | "fold": 61761, 68 | "fold-down": 61762, 69 | "fold-up": 61763, 70 | "gear": 61764, 71 | "gift": 61765, 72 | "gist": 61766, 73 | "gist-secret": 61767, 74 | "git-branch": 61768, 75 | "git-commit": 61769, 76 | "git-compare": 61770, 77 | "git-merge": 61771, 78 | "git-pull-request": 61772, 79 | "github-action": 61773, 80 | "globe": 61774, 81 | "grabber": 61775, 82 | "graph": 61776, 83 | "heart": 61777, 84 | "history": 61778, 85 | "home": 61779, 86 | "horizontal-rule": 61780, 87 | "hubot": 61781, 88 | "inbox": 61782, 89 | "info": 61783, 90 | "issue-closed": 61784, 91 | "issue-opened": 61785, 92 | "issue-reopened": 61786, 93 | "italic": 61787, 94 | "jersey": 61788, 95 | "kebab-horizontal": 61789, 96 | "kebab-vertical": 61790, 97 | "key": 61791, 98 | "keyboard": 61792, 99 | "law": 61793, 100 | "light-bulb": 61794, 101 | "link": 61795, 102 | "link-external": 61796, 103 | "list-ordered": 61797, 104 | "list-unordered": 61798, 105 | "location": 61799, 106 | "lock": 61800, 107 | "logo-gist": 61801, 108 | "logo-github": 61802, 109 | "mail": 61803, 110 | "mail-read": 61804, 111 | "mark-github": 61805, 112 | "markdown": 61806, 113 | "megaphone": 61807, 114 | "mention": 61808, 115 | "milestone": 61809, 116 | "mirror": 61810, 117 | "mortar-board": 61811, 118 | "mute": 61812, 119 | "no-newline": 61813, 120 | "note": 61814, 121 | "octoface": 61815, 122 | "organization": 61816, 123 | "package": 61817, 124 | "paintcan": 61818, 125 | "pencil": 61819, 126 | "person": 61820, 127 | "pin": 61821, 128 | "play": 61822, 129 | "plug": 61823, 130 | "plus": 61824, 131 | "plus-small": 61825, 132 | "primitive-dot": 61826, 133 | "primitive-square": 61827, 134 | "project": 61828, 135 | "pulse": 61829, 136 | "question": 61830, 137 | "quote": 61831, 138 | "radio-tower": 61832, 139 | "reply": 61833, 140 | "repo": 61834, 141 | "repo-clone": 61835, 142 | "repo-force-push": 61836, 143 | "repo-forked": 61837, 144 | "repo-pull": 61838, 145 | "repo-push": 61839, 146 | "report": 61840, 147 | "request-changes": 61841, 148 | "rocket": 61842, 149 | "rss": 61843, 150 | "ruby": 61844, 151 | "screen-full": 61845, 152 | "screen-normal": 61846, 153 | "search": 61847, 154 | "server": 61848, 155 | "settings": 61849, 156 | "shield": 61850, 157 | "sign-in": 61851, 158 | "sign-out": 61852, 159 | "smiley": 61853, 160 | "squirrel": 61854, 161 | "star": 61855, 162 | "stop": 61856, 163 | "sync": 61857, 164 | "tag": 61858, 165 | "tasklist": 61859, 166 | "telescope": 61860, 167 | "terminal": 61861, 168 | "text-size": 61862, 169 | "three-bars": 61863, 170 | "thumbsdown": 61864, 171 | "thumbsup": 61865, 172 | "tools": 61866, 173 | "trashcan": 61867, 174 | "triangle-down": 61868, 175 | "triangle-left": 61869, 176 | "triangle-right": 61870, 177 | "triangle-up": 61871, 178 | "unfold": 61872, 179 | "unmute": 61873, 180 | "unverified": 61874, 181 | "verified": 61875, 182 | "versions": 61876, 183 | "watch": 61877, 184 | "x": 61878, 185 | "zap": 61879 186 | } -------------------------------------------------------------------------------- /src/components/BanMore.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { StyleSheet, Image, View, Text, Dimensions, FlatList, ScrollView, TouchableHighlight } from 'react-native'; 3 | import { Container, Header,Title, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base'; 4 | import { Actions } from 'react-native-router-flux'; 5 | 6 | const BannerWidth = (Dimensions.get('window').width * 0.96); 7 | const screenLeft = (Dimensions.get('window').width * 0.02); 8 | 9 | const cards = [ 10 | { 11 | title: "番剧推荐", 12 | id: 1, 13 | name: "猎兽神兵", 14 | number: "全12话", 15 | count: "69.1万追番", 16 | imageurl: "http://i0.hdslb.com/bfs/archive/81385f895a48a1c27a0e701218781908fb9d5dd2.jpg", 17 | }, 18 | { 19 | id: 1, 20 | name: "鬼灭之刃", 21 | number: "更新至第24话", 22 | count: "476.9万追番", 23 | imageurl: "http://i0.hdslb.com/bfs/archive/efc989798673c8c374cad6e2b4fc555a8f0f3c2c.jpg", 24 | }, 25 | { 26 | id: 1, 27 | name: "女高中生的虚度日常", 28 | number: "更新至第11话", 29 | count: "171.1万追番", 30 | imageurl: "http://i0.hdslb.com/bfs/archive/1c277223735cfe18a32f8130855a20c1a699f706.jpg", 31 | }, 32 | { 33 | id: 1, 34 | name: "某科学的一方通行", 35 | number: "更新至第10话", 36 | count: "217.2万追番", 37 | imageurl: "http://i0.hdslb.com/bfs/archive/def29a30113e96248830b2a984c8feb6749252f4.jpg", 38 | }, 39 | { 40 | id: 2, 41 | name: "爱书的下克上:为了成为图书管理员不择手段!", 42 | number: "更新至第10话", 43 | count: "36万追番", 44 | imageurl: "https://i2.hdslb.com/bfs/archive/b6e413bef190422a10f6c5da448b29bafc272509.jpg", 45 | }, 46 | { 47 | id: 2, 48 | name: "喜欢本大爷的竟然就你一个?", 49 | number: "更新至第9.5话", 50 | count: "159.9万追番", 51 | imageurl: "https://i0.hdslb.com/bfs/archive/6a40cf23518888c0aa5346ba9ca659771463d2df.jpg", 52 | }, 53 | { 54 | id: 2, 55 | name: "碧蓝航线", 56 | number: "更新至第9话", 57 | count: "116.8万追番", 58 | imageurl: "https://i1.hdslb.com/bfs/archive/ba2cb324e57b917e2bd46794540203ff76a7ba52.jpg", 59 | }, 60 | { 61 | id: 2, 62 | name: "刺客守则", 63 | number: "全12话", 64 | count: "114.6万追番", 65 | imageurl: "https://i0.hdslb.com/bfs/archive/e7a0b9d006fe345dabd0fffe45e636a27bba7be9.jpg", 66 | } 67 | 68 | ]; 69 | 70 | class BanMore extends Component { 71 | constructor(props) { 72 | super(props) 73 | this.state = {} 74 | } 75 | render() { 76 | return ( 77 | 78 |
79 | 80 | {Actions.pop()}}> 81 | 82 | 83 | 更多番剧 84 | 85 | 86 | 87 |
88 | i} // 解决 key 问题 91 | renderItem={({ item }) => this.renderItem(item)} // 调用方法,去渲染每一项 92 | //ItemSeparatorComponent={this.renderSeparator} //渲染分割线的属性方法 93 | onEndReachedThreshold={0.5} // 距离底部还有多远的时候,触发加载更多的事件 94 | //onEndReached={this.loadNextPage} // 当距离不足 0.5 的时候,触发这个方法,加载下一页数据 95 | style={{ backgroundColor: "#FFFFFF" }} 96 | /> 97 |
98 | ); 99 | } 100 | 101 | renderItem = (item) => { 102 | return 103 | 104 | 105 | {/*justify-content:主軸的對齊 */} 106 | 107 | 番剧名称:{item.name} 108 | 番剧集数:{item.number} 109 | 追番人数:{item.count}分 110 | 113 | 114 | 115 | 116 | } 117 | 118 | 119 | 120 | } 121 | 122 | 123 | 124 | export default BanMore; -------------------------------------------------------------------------------- /src/pages/search_sub_pages/SearchResult.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { View, Text, StyleSheet, TouchableHighlight, FlatList } from 'react-native'; 3 | import ModalDropdown from 'react-native-modal-dropdown'; 4 | import { Actions } from 'react-native-router-flux'; 5 | import { numFormat } from '../../utils/utils'; 6 | 7 | 8 | import ListItemUI from '../../components/ListItemUI'; 9 | 10 | class SearchResult extends Component { 11 | constructor(props) { 12 | super(props); 13 | this.state = { 14 | selectValueA: '默认排序', 15 | selectValueB: '全部时长', 16 | selectValueC: '全部分区', 17 | dropdownList: ['默认排序', '播放多', '新发布', '弹幕多'], 18 | dropdownList2: ['全部时长', '0-10分钟', '10-30分钟', '30-60分钟'], 19 | dropdownList3: ['全部分区', '分区2', '分区3', '分区4'] 20 | } 21 | } 22 | 23 | componentDidMount() { 24 | // this.getSearchResultList() 25 | } 26 | 27 | //列表元素按下事件 28 | _toVideoPageOnPress(item) { 29 | Actions.VideoPage({ 'aid': item.param }) 30 | } 31 | 32 | //上拉加载 33 | _onEndReached = () => { 34 | this.props.resultClssfiy(1) 35 | } 36 | 37 | 38 | _renderResultList = (item, index) => { 39 | if (item.linktype === 'video') { 40 | return ( 41 | this._toVideoPageOnPress(item)} 43 | underlayColor="#f3f3f3" 44 | > 45 | 55 | 56 | ) 57 | } else { 58 | return null 59 | } 60 | } 61 | render() { 62 | return ( 63 | 64 | {console.warn(index)}}/> 74 | 75 | 76 | 77 | this._renderResultList(item, index)} 81 | keyExtractor={(item, index) => index + item.position} 82 | onEndReached={this._onEndReached} 83 | onEndReachedThreshold={2} 84 | /> 85 | ); 86 | } 87 | } 88 | const styles = StyleSheet.create({ 89 | container: { 90 | flex: 1, 91 | }, 92 | topBox: { 93 | flexDirection: 'row', 94 | height: 35, 95 | }, 96 | dropdown: { 97 | flex: 1, 98 | justifyContent: 'center', 99 | alignItems: 'center', 100 | borderBottomWidth: 0.2, 101 | borderColor: '#fb7b9e' 102 | }, 103 | dropdownText: { 104 | color: '#888', 105 | fontSize: 14, 106 | width: 80, 107 | textAlign: 'center', 108 | color: '#fb7b9e' 109 | }, 110 | dropdownStyle: { 111 | backgroundColor: '#ccc', 112 | marginTop: 10, 113 | width: 80, 114 | height: 158, 115 | justifyContent: 'center' 116 | }, 117 | highlightStyle: { 118 | backgroundColor: '#fb7b9e', 119 | fontSize: 14, 120 | textAlign: 'center', 121 | color: '#fff' 122 | }, 123 | dropdownTextStyle: { 124 | backgroundColor: '#fff', 125 | color: '#fb7b9e', 126 | fontSize: 14, 127 | textAlign: 'center' 128 | }, 129 | }) 130 | 131 | export default SearchResult; -------------------------------------------------------------------------------- /android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_simplelineicons.json: -------------------------------------------------------------------------------- 1 | { 2 | "user": 57349, 3 | "people": 57345, 4 | "user-female": 57344, 5 | "user-follow": 57346, 6 | "user-following": 57347, 7 | "user-unfollow": 57348, 8 | "login": 57446, 9 | "logout": 57445, 10 | "emotsmile": 57377, 11 | "phone": 58880, 12 | "call-end": 57416, 13 | "call-in": 57415, 14 | "call-out": 57414, 15 | "map": 57395, 16 | "location-pin": 57494, 17 | "direction": 57410, 18 | "directions": 57409, 19 | "compass": 57413, 20 | "layers": 57396, 21 | "menu": 58881, 22 | "list": 57447, 23 | "options-vertical": 58882, 24 | "options": 58883, 25 | "arrow-down": 58884, 26 | "arrow-left": 58885, 27 | "arrow-right": 58886, 28 | "arrow-up": 58887, 29 | "arrow-up-circle": 57464, 30 | "arrow-left-circle": 57466, 31 | "arrow-right-circle": 57465, 32 | "arrow-down-circle": 57467, 33 | "check": 57472, 34 | "clock": 57473, 35 | "plus": 57493, 36 | "minus": 58901, 37 | "close": 57474, 38 | "event": 58905, 39 | "exclamation": 58903, 40 | "organization": 58902, 41 | "trophy": 57350, 42 | "screen-smartphone": 57360, 43 | "screen-desktop": 57361, 44 | "plane": 57362, 45 | "notebook": 57363, 46 | "mustache": 57364, 47 | "mouse": 57365, 48 | "magnet": 57366, 49 | "energy": 57376, 50 | "disc": 57378, 51 | "cursor": 57454, 52 | "cursor-move": 57379, 53 | "crop": 57380, 54 | "chemistry": 57382, 55 | "speedometer": 57351, 56 | "shield": 57358, 57 | "screen-tablet": 57359, 58 | "magic-wand": 57367, 59 | "hourglass": 57368, 60 | "graduation": 57369, 61 | "ghost": 57370, 62 | "game-controller": 57371, 63 | "fire": 57372, 64 | "eyeglass": 57373, 65 | "envelope-open": 57374, 66 | "envelope-letter": 57375, 67 | "bell": 57383, 68 | "badge": 57384, 69 | "anchor": 57385, 70 | "wallet": 57386, 71 | "vector": 57387, 72 | "speech": 57388, 73 | "puzzle": 57389, 74 | "printer": 57390, 75 | "present": 57391, 76 | "playlist": 57392, 77 | "pin": 57393, 78 | "picture": 57394, 79 | "handbag": 57397, 80 | "globe-alt": 57398, 81 | "globe": 57399, 82 | "folder-alt": 57401, 83 | "folder": 57481, 84 | "film": 57402, 85 | "feed": 57403, 86 | "drop": 57406, 87 | "drawer": 57407, 88 | "docs": 57408, 89 | "doc": 57477, 90 | "diamond": 57411, 91 | "cup": 57412, 92 | "calculator": 57417, 93 | "bubbles": 57418, 94 | "briefcase": 57419, 95 | "book-open": 57420, 96 | "basket-loaded": 57421, 97 | "basket": 57422, 98 | "bag": 57423, 99 | "action-undo": 57424, 100 | "action-redo": 57425, 101 | "wrench": 57426, 102 | "umbrella": 57427, 103 | "trash": 57428, 104 | "tag": 57429, 105 | "support": 57430, 106 | "frame": 57400, 107 | "size-fullscreen": 57431, 108 | "size-actual": 57432, 109 | "shuffle": 57433, 110 | "share-alt": 57434, 111 | "share": 57435, 112 | "rocket": 57436, 113 | "question": 57437, 114 | "pie-chart": 57438, 115 | "pencil": 57439, 116 | "note": 57440, 117 | "loop": 57444, 118 | "home": 57449, 119 | "grid": 57450, 120 | "graph": 57451, 121 | "microphone": 57443, 122 | "music-tone-alt": 57441, 123 | "music-tone": 57442, 124 | "earphones-alt": 57404, 125 | "earphones": 57405, 126 | "equalizer": 57452, 127 | "like": 57448, 128 | "dislike": 57453, 129 | "control-start": 57455, 130 | "control-rewind": 57456, 131 | "control-play": 57457, 132 | "control-pause": 57458, 133 | "control-forward": 57459, 134 | "control-end": 57460, 135 | "volume-1": 57503, 136 | "volume-2": 57504, 137 | "volume-off": 57505, 138 | "calendar": 57461, 139 | "bulb": 57462, 140 | "chart": 57463, 141 | "ban": 57468, 142 | "bubble": 57469, 143 | "camrecorder": 57470, 144 | "camera": 57471, 145 | "cloud-download": 57475, 146 | "cloud-upload": 57476, 147 | "envelope": 57478, 148 | "eye": 57479, 149 | "flag": 57480, 150 | "heart": 57482, 151 | "info": 57483, 152 | "key": 57484, 153 | "link": 57485, 154 | "lock": 57486, 155 | "lock-open": 57487, 156 | "magnifier": 57488, 157 | "magnifier-add": 57489, 158 | "magnifier-remove": 57490, 159 | "paper-clip": 57491, 160 | "paper-plane": 57492, 161 | "power": 57495, 162 | "refresh": 57496, 163 | "reload": 57497, 164 | "settings": 57498, 165 | "star": 57499, 166 | "symbol-female": 57500, 167 | "symbol-male": 57501, 168 | "target": 57502, 169 | "credit-card": 57381, 170 | "paypal": 58888, 171 | "social-tumblr": 57354, 172 | "social-twitter": 57353, 173 | "social-facebook": 57355, 174 | "social-instagram": 58889, 175 | "social-linkedin": 58890, 176 | "social-pinterest": 58891, 177 | "social-github": 58892, 178 | "social-google": 58893, 179 | "social-reddit": 58894, 180 | "social-skype": 58895, 181 | "social-dribbble": 57357, 182 | "social-behance": 58896, 183 | "social-foursqare": 58897, 184 | "social-soundcloud": 58898, 185 | "social-spotify": 58899, 186 | "social-stumbleupon": 58900, 187 | "social-youtube": 57352, 188 | "social-dropbox": 57356, 189 | "social-vkontakte": 58904, 190 | "social-steam": 58912 191 | } -------------------------------------------------------------------------------- /src/assets/icons/mybilibil_font/font_1562172_onj4s86ncfd/iconfont.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "1562172", 3 | "name": "mybilibili", 4 | "font_family": "iconfont", 5 | "css_prefix_text": "icon-", 6 | "description": "", 7 | "glyphs": [ 8 | { 9 | "icon_id": "423047", 10 | "name": "收藏负形", 11 | "font_class": "shoucangfuxing", 12 | "unicode": "e672", 13 | "unicode_decimal": 58994 14 | }, 15 | { 16 | "icon_id": "423048", 17 | "name": "收藏正形", 18 | "font_class": "shoucangzhengxing", 19 | "unicode": "e673", 20 | "unicode_decimal": 58995 21 | }, 22 | { 23 | "icon_id": "579286", 24 | "name": "点赞", 25 | "font_class": "dianzan", 26 | "unicode": "e60c", 27 | "unicode_decimal": 58892 28 | }, 29 | { 30 | "icon_id": "740391", 31 | "name": "搜索", 32 | "font_class": "sousuo", 33 | "unicode": "e614", 34 | "unicode_decimal": 58900 35 | }, 36 | { 37 | "icon_id": "880163", 38 | "name": "评论", 39 | "font_class": "pinglun", 40 | "unicode": "e603", 41 | "unicode_decimal": 58883 42 | }, 43 | { 44 | "icon_id": "886699", 45 | "name": "点赞", 46 | "font_class": "dianzan1", 47 | "unicode": "e611", 48 | "unicode_decimal": 58897 49 | }, 50 | { 51 | "icon_id": "959410", 52 | "name": "share", 53 | "font_class": "share", 54 | "unicode": "e655", 55 | "unicode_decimal": 58965 56 | }, 57 | { 58 | "icon_id": "1603699", 59 | "name": "收藏", 60 | "font_class": "shoucang", 61 | "unicode": "e618", 62 | "unicode_decimal": 58904 63 | }, 64 | { 65 | "icon_id": "2116294", 66 | "name": "分享", 67 | "font_class": "share_icon", 68 | "unicode": "e662", 69 | "unicode_decimal": 58978 70 | }, 71 | { 72 | "icon_id": "3249133", 73 | "name": "icon-bilibili", 74 | "font_class": "icon-bilibili", 75 | "unicode": "e602", 76 | "unicode_decimal": 58882 77 | }, 78 | { 79 | "icon_id": "4735320", 80 | "name": "icon_点赞-线", 81 | "font_class": "icon_dianzan-xian", 82 | "unicode": "e64a", 83 | "unicode_decimal": 58954 84 | }, 85 | { 86 | "icon_id": "4735325", 87 | "name": "icon_点赞-面", 88 | "font_class": "icon_dianzan-mian", 89 | "unicode": "e64c", 90 | "unicode_decimal": 58956 91 | }, 92 | { 93 | "icon_id": "4956691", 94 | "name": "bilibili", 95 | "font_class": "bilibili", 96 | "unicode": "e6cf", 97 | "unicode_decimal": 59087 98 | }, 99 | { 100 | "icon_id": "7766786", 101 | "name": "icon_send", 102 | "font_class": "icon_send", 103 | "unicode": "eb9d", 104 | "unicode_decimal": 60317 105 | }, 106 | { 107 | "icon_id": "8714755", 108 | "name": "会员购激活@2x", 109 | "font_class": "huiyuangoujihuox", 110 | "unicode": "e652", 111 | "unicode_decimal": 58962 112 | }, 113 | { 114 | "icon_id": "8977288", 115 | "name": "会员购@2x", 116 | "font_class": "huiyuangoux", 117 | "unicode": "e600", 118 | "unicode_decimal": 58880 119 | }, 120 | { 121 | "icon_id": "10216375", 122 | "name": "投币", 123 | "font_class": "toubi", 124 | "unicode": "e607", 125 | "unicode_decimal": 58887 126 | }, 127 | { 128 | "icon_id": "11372651", 129 | "name": "点赞", 130 | "font_class": "dianzan2", 131 | "unicode": "e8ad", 132 | "unicode_decimal": 59565 133 | }, 134 | { 135 | "icon_id": "11372659", 136 | "name": "更多", 137 | "font_class": "gengduo", 138 | "unicode": "e8af", 139 | "unicode_decimal": 59567 140 | }, 141 | { 142 | "icon_id": "11372666", 143 | "name": "分享", 144 | "font_class": "fenxiang", 145 | "unicode": "e8b0", 146 | "unicode_decimal": 59568 147 | }, 148 | { 149 | "icon_id": "11372687", 150 | "name": "评论", 151 | "font_class": "pinglun1", 152 | "unicode": "e8b4", 153 | "unicode_decimal": 59572 154 | }, 155 | { 156 | "icon_id": "11372720", 157 | "name": "想看", 158 | "font_class": "xiangkan", 159 | "unicode": "e8bc", 160 | "unicode_decimal": 59580 161 | }, 162 | { 163 | "icon_id": "11372722", 164 | "name": "消息", 165 | "font_class": "xiaoxi", 166 | "unicode": "e8bd", 167 | "unicode_decimal": 59581 168 | }, 169 | { 170 | "icon_id": "11372730", 171 | "name": "已想看", 172 | "font_class": "yixiangkan", 173 | "unicode": "e8bf", 174 | "unicode_decimal": 59583 175 | }, 176 | { 177 | "icon_id": "11372758", 178 | "name": "点赞", 179 | "font_class": "dianzan3", 180 | "unicode": "e8c3", 181 | "unicode_decimal": 59587 182 | }, 183 | { 184 | "icon_id": "11372767", 185 | "name": "会员", 186 | "font_class": "huiyuan", 187 | "unicode": "e8c5", 188 | "unicode_decimal": 59589 189 | }, 190 | { 191 | "icon_id": "12167484", 192 | "name": "搜索--1", 193 | "font_class": "soushuo", 194 | "unicode": "e601", 195 | "unicode_decimal": 58881 196 | } 197 | ] 198 | } 199 | -------------------------------------------------------------------------------- /App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { View, Text, StyleSheet, TouchableHighlight, DrawerLayoutAndroid, StatusBar } from 'react-native' 3 | import TabNavigator from 'react-native-tab-navigator' 4 | import { Container, Header, Title, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base'; 5 | 6 | 7 | 8 | import HomePage from './src/pages/HomePage'; 9 | import Classify from './src/pages/Classify'; 10 | import Search from './src/pages/Search'; 11 | import MemberBuy from './src/pages/MemberBuy'; 12 | 13 | import Land from './src/components/AppDraw/land'; 14 | 15 | 16 | const App: () => React$Node = () => { 17 | const [selectedTab, onChangeSelectedTab] = React.useState("首页") 18 | const navigationView = ( 19 | 20 | ) 21 | return ( 22 | navigationView}> 26 | 27 | 97 | 98 | ); 99 | } 100 | 101 | 102 | 103 | 104 | export default App; -------------------------------------------------------------------------------- /ios/react_blibli.xcodeproj/xcshareddata/xcschemes/react_blibli.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 43 | 49 | 50 | 51 | 52 | 53 | 58 | 59 | 61 | 67 | 68 | 69 | 70 | 71 | 77 | 78 | 79 | 80 | 81 | 82 | 92 | 94 | 100 | 101 | 102 | 103 | 104 | 105 | 111 | 113 | 119 | 120 | 121 | 122 | 124 | 125 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /src/pages/home_sub_pages/Move.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import Carousel from 'react-native-banner-carousel'; 3 | import { StyleSheet, Image, View, Text, Dimensions, ScrollView } from 'react-native'; 4 | import { Container, Header, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base'; 5 | import MovieOne from '../../components/MovieOne' 6 | import MovieTwo from '../../components/MovieTwo'; 7 | import MovieThree from '../../components/MovieThree' 8 | 9 | 10 | 11 | 12 | //轮播图片数据 13 | const images = [ 14 | "http://i0.hdslb.com/bfs/bangumi/6a11174b96970c2239f9f5064c57e59af70171a6.jpg", 15 | "http://i0.hdslb.com/bfs/bangumi/4c58a6e3d6c9901251250ee4ef9ff5696e3c1db0.jpg", 16 | "http://i0.hdslb.com/bfs/bangumi/98182d952ce44c6d378be97264e7bda0b0fd4c88.jpg", 17 | "http://i0.hdslb.com/bfs/bangumi/923bfb36c57cd643afb6a6c48594695372ff4a72.jpg", 18 | "http://i0.hdslb.com/bfs/bangumi/5afd0231d665fd2ee29c376c292a8b3f0203384b.jpg", 19 | 20 | ]; 21 | 22 | const texts = [ 23 | "吴青峰:怼粉这种事,都是靠灵感", 24 | "中国千年的礼乐智慧", 25 | "一群有能力、有怪癖又可爱的退休警察们", 26 | "破解冻土难题,改写国际预言", 27 | "实拍战机空中机油~", 28 | ]; 29 | 30 | const BannerWidth = (Dimensions.get('window').width * 0.96); 31 | const BannerHeight = 180; 32 | 33 | //导航栏图标资源 34 | const icons = [ 35 | "http://i0.hdslb.com/bfs/bangumi/85e80d8bb430e76eb3e55bbf93d8a62a51e2a774.png", 36 | "http://i0.hdslb.com/bfs/bangumi/a1901aedc680a77c808787cb2cf8e22c7b9c359b.png", 37 | "http://i0.hdslb.com/bfs/bangumi/21bd3247c745e3f1eb489bf637215f8cc8aa86ca.png", 38 | "http://i0.hdslb.com/bfs/bangumi/76c03a7ca20815765c7f5bc17d320e0676e15a20.png", 39 | "http://i0.hdslb.com/bfs/bangumi/e713a764f9146b73673ba9b126d963aa50f4fc3b.png", 40 | 41 | ]; 42 | const iconTexts = [ 43 | "纪录片", 44 | "电影", 45 | "电视剧", 46 | "索引", 47 | "热门榜单" 48 | ]; 49 | 50 | 51 | class Movie extends Component { 52 | constructor(props) { 53 | super(props); 54 | this.state = {} 55 | } 56 | 57 | //渲染轮播图片 58 | renderPage(image, index) { 59 | let count = index; 60 | return ( 61 | 62 | {texts[count]} 63 | 64 | 65 | ); 66 | 67 | } 68 | 69 | render() { 70 | return ( 71 | 72 | 73 | {/* 轮播图片 */} 74 | 75 | 85 | {images.map((image, index) => this.renderPage(image, index))} 86 | 87 | 88 | 89 | {/* 导航栏 */} 90 | 91 | 92 | {icons.map((item, index) => { 93 | let font = index; 94 | return ( 95 | 96 | 97 | {iconTexts[font]} 98 | 99 | ); 100 | })} 101 | 102 | 103 | 104 | {/* 纪录片组件 */} 105 | 106 | 107 | 108 | 109 | {/* 电影组件 */} 110 | 111 | 112 | 113 | 114 | {/* 电视剧组件*/} 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | ) 131 | } 132 | } 133 | 134 | const styles = StyleSheet.create({ 135 | //轮播图样式 136 | container: { 137 | flex: 1, 138 | backgroundColor: '#fff', 139 | // 横向 居中 140 | flexDirection: 'row', 141 | justifyContent: 'center', 142 | position: "absolute", 143 | top: 5, 144 | right: 0, 145 | left: 0, 146 | //圆角边框 147 | borderRadius: 20, 148 | overflow: "hidden", 149 | }, 150 | //导航栏样式 151 | box: { 152 | width: "100%", 153 | alignItems: "center", 154 | marginTop: 190, 155 | 156 | }, 157 | }); 158 | 159 | export default Movie; -------------------------------------------------------------------------------- /ios/react_blibli.xcodeproj/xcshareddata/xcschemes/react_blibli-tvOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 43 | 49 | 50 | 51 | 52 | 53 | 58 | 59 | 61 | 67 | 68 | 69 | 70 | 71 | 77 | 78 | 79 | 80 | 81 | 82 | 92 | 94 | 100 | 101 | 102 | 103 | 104 | 105 | 111 | 113 | 119 | 120 | 121 | 122 | 124 | 125 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /src/pages/home_sub_pages/Bangumi.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import Carousel from 'react-native-banner-carousel'; 3 | import { StyleSheet, Image, View, Text, Dimensions, ScrollView } from 'react-native'; 4 | import { Container, Header, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base'; 5 | import BanItem from '../../components/BanItem' 6 | import GuoItem from '../../components/GuoItem' 7 | 8 | 9 | const BannerWidth = (Dimensions.get('window').width * 0.96); 10 | const BannerHeight = 180; 11 | //轮播图片数据 12 | const images = [ 13 | "http://i0.hdslb.com/bfs/bangumi/a085f60bda7f18226accf3993b328e17f419c00d.jpg", 14 | "http://i0.hdslb.com/bfs/bangumi/8c39135d5191acbe0f0108ede3dbc76b6342cd36.jpg", 15 | "http://i0.hdslb.com/bfs/bangumi/105c45fa8538c897e85e44f3811eda2de2d79b85.jpg", 16 | "http://i0.hdslb.com/bfs/bangumi/20429c37693f67e5310f3b4d02f96c2b7403a6ec.jpg" 17 | ]; 18 | const texts = [ 19 | "FGO动画专题页", 20 | "少女前线 人形小剧场:第9话", 21 | "风起绿林", 22 | "【一周资讯】第37期" 23 | ]; 24 | 25 | //导航栏图标资源 26 | const icons = [ 27 | "http://i0.hdslb.com/bfs/bangumi/125ba229db0dcc3b5a9fe110ba3f4984ddc2c775.png", 28 | "http://i0.hdslb.com/bfs/bangumi/2c782d7a8127d0de8667321d4071eebff01ea977.png", 29 | "http://i0.hdslb.com/bfs/bangumi/7a7d9db1911b7cbfdad44ae953dd5acc49ef5187.png", 30 | "http://i0.hdslb.com/bfs/bangumi/76c03a7ca20815765c7f5bc17d320e0676e15a20.png", 31 | "http://i0.hdslb.com/bfs/bangumi/e713a764f9146b73673ba9b126d963aa50f4fc3b.png", 32 | ]; 33 | const iconTexts = [ 34 | "国创", 35 | "番剧", 36 | "时间表", 37 | "索引", 38 | "热门榜单" 39 | ]; 40 | 41 | class Bangumi extends Component { 42 | constructor(props) { 43 | super(props); 44 | this.state = { 45 | y:0 46 | } 47 | } 48 | 49 | //渲染轮播图片 50 | renderPage(image, index) { 51 | let count = index; 52 | return ( 53 | 54 | {texts[count]} 55 | 56 | 57 | ); 58 | 59 | } 60 | 61 | // 滑动触发 62 | _onScroll=(e)=>{ 63 | // 获取滑动的距离 64 | let { y } = e.nativeEvent.contentOffset; 65 | // console.log("y的值"+y) 66 | this.setState({ 67 | y 68 | }) 69 | 70 | } 71 | 72 | 73 | render() { 74 | return ( 75 | 76 | 79 | {/* 轮播图片 */} 80 | 81 | 91 | {images.map((image, index) => this.renderPage(image, index))} 92 | 93 | 94 | 95 | {/* 导航栏 */} 96 | 97 | 98 | {icons.map((item, index) => { 99 | let font = index; 100 | return ( 101 | 102 | 103 | {iconTexts[font]} 104 | 105 | ); 106 | })} 107 | 108 | 109 | {/* 登录图片 */} 110 | 111 | 112 | 113 | {/* 番剧推荐 */} 114 | 115 | 116 | 117 | 118 | {/* 国创卡片 */} 119 | 120 | 121 | 122 | 123 | 124 | ); 125 | } 126 | } 127 | 128 | 129 | const styles = StyleSheet.create({ 130 | //轮播图样式 131 | container: { 132 | flex: 1, 133 | backgroundColor: '#fff', 134 | // 横向 居中 135 | flexDirection: 'row', 136 | justifyContent: 'center', 137 | position: "absolute", 138 | top: 5, 139 | right: 0, 140 | left: 0, 141 | //圆角边框 142 | borderRadius: 20, 143 | overflow: "hidden", 144 | }, 145 | //导航栏样式 146 | box: { 147 | width: "100%", 148 | alignItems: "center", 149 | marginTop: 190, 150 | 151 | }, 152 | //登陆图片样式 153 | login: { 154 | width: "100%", 155 | overflow: "hidden", 156 | marginTop: 5, 157 | }, 158 | 159 | 160 | }); 161 | 162 | 163 | export default Bangumi; -------------------------------------------------------------------------------- /android/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # 4 | # Copyright 2015 the original author or authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | ############################################################################## 20 | ## 21 | ## Gradle start up script for UN*X 22 | ## 23 | ############################################################################## 24 | 25 | # Attempt to set APP_HOME 26 | # Resolve links: $0 may be a link 27 | PRG="$0" 28 | # Need this for relative symlinks. 29 | while [ -h "$PRG" ] ; do 30 | ls=`ls -ld "$PRG"` 31 | link=`expr "$ls" : '.*-> \(.*\)$'` 32 | if expr "$link" : '/.*' > /dev/null; then 33 | PRG="$link" 34 | else 35 | PRG=`dirname "$PRG"`"/$link" 36 | fi 37 | done 38 | SAVED="`pwd`" 39 | cd "`dirname \"$PRG\"`/" >/dev/null 40 | APP_HOME="`pwd -P`" 41 | cd "$SAVED" >/dev/null 42 | 43 | APP_NAME="Gradle" 44 | APP_BASE_NAME=`basename "$0"` 45 | 46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 48 | 49 | # Use the maximum available, or set MAX_FD != -1 to use that value. 50 | MAX_FD="maximum" 51 | 52 | warn () { 53 | echo "$*" 54 | } 55 | 56 | die () { 57 | echo 58 | echo "$*" 59 | echo 60 | exit 1 61 | } 62 | 63 | # OS specific support (must be 'true' or 'false'). 64 | cygwin=false 65 | msys=false 66 | darwin=false 67 | nonstop=false 68 | case "`uname`" in 69 | CYGWIN* ) 70 | cygwin=true 71 | ;; 72 | Darwin* ) 73 | darwin=true 74 | ;; 75 | MINGW* ) 76 | msys=true 77 | ;; 78 | NONSTOP* ) 79 | nonstop=true 80 | ;; 81 | esac 82 | 83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 84 | 85 | # Determine the Java command to use to start the JVM. 86 | if [ -n "$JAVA_HOME" ] ; then 87 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 88 | # IBM's JDK on AIX uses strange locations for the executables 89 | JAVACMD="$JAVA_HOME/jre/sh/java" 90 | else 91 | JAVACMD="$JAVA_HOME/bin/java" 92 | fi 93 | if [ ! -x "$JAVACMD" ] ; then 94 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 95 | 96 | Please set the JAVA_HOME variable in your environment to match the 97 | location of your Java installation." 98 | fi 99 | else 100 | JAVACMD="java" 101 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 102 | 103 | Please set the JAVA_HOME variable in your environment to match the 104 | location of your Java installation." 105 | fi 106 | 107 | # Increase the maximum file descriptors if we can. 108 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then 109 | MAX_FD_LIMIT=`ulimit -H -n` 110 | if [ $? -eq 0 ] ; then 111 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 112 | MAX_FD="$MAX_FD_LIMIT" 113 | fi 114 | ulimit -n $MAX_FD 115 | if [ $? -ne 0 ] ; then 116 | warn "Could not set maximum file descriptor limit: $MAX_FD" 117 | fi 118 | else 119 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 120 | fi 121 | fi 122 | 123 | # For Darwin, add options to specify how the application appears in the dock 124 | if $darwin; then 125 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 126 | fi 127 | 128 | # For Cygwin, switch paths to Windows format before running java 129 | if $cygwin ; then 130 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 131 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 132 | JAVACMD=`cygpath --unix "$JAVACMD"` 133 | 134 | # We build the pattern for arguments to be converted via cygpath 135 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 136 | SEP="" 137 | for dir in $ROOTDIRSRAW ; do 138 | ROOTDIRS="$ROOTDIRS$SEP$dir" 139 | SEP="|" 140 | done 141 | OURCYGPATTERN="(^($ROOTDIRS))" 142 | # Add a user-defined pattern to the cygpath arguments 143 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 144 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 145 | fi 146 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 147 | i=0 148 | for arg in "$@" ; do 149 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 150 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 151 | 152 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 153 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 154 | else 155 | eval `echo args$i`="\"$arg\"" 156 | fi 157 | i=$((i+1)) 158 | done 159 | case $i in 160 | (0) set -- ;; 161 | (1) set -- "$args0" ;; 162 | (2) set -- "$args0" "$args1" ;; 163 | (3) set -- "$args0" "$args1" "$args2" ;; 164 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 165 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 166 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 167 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 168 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 169 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 170 | esac 171 | fi 172 | 173 | # Escape application args 174 | save () { 175 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done 176 | echo " " 177 | } 178 | APP_ARGS=$(save "$@") 179 | 180 | # Collect all arguments for the java command, following the shell quoting and substitution rules 181 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" 182 | 183 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong 184 | if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then 185 | cd "$(dirname "$0")" 186 | fi 187 | 188 | exec "$JAVACMD" "$@" 189 | -------------------------------------------------------------------------------- /src/pages/MemberBuy.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | // import StickyHeader from "./MemberBuy/StickyHeader"; 3 | import Top from "../components/MemberBuy/Top" 4 | import Search from "../components/MemberBuy/Search" 5 | import FiveList from "../components/MemberBuy/FiveList" 6 | import ThreeList from "../components/MemberBuy/ThreeList" 7 | import Swipe from "../components/MemberBuy/Swipe" 8 | import TabsList from "../components/MemberBuy/TabsList" 9 | import _Tabs from "../components/MemberBuy/Tabs" 10 | 11 | import { 12 | Animated, 13 | StyleSheet, 14 | View, 15 | Text, 16 | ScrollView, 17 | RefreshControl, 18 | Image, 19 | Dimensions, 20 | ActivityIndicator 21 | } from 'react-native' 22 | const BannerWidth = Dimensions.get('window').width; 23 | const BannerHeight = 100; 24 | 25 | export default class MovieListScreen extends Component { 26 | 27 | constructor(props) { 28 | super(props); 29 | this.state = { 30 | scrollY: new Animated.Value(0), 31 | headHeight: -1, 32 | tabs: [], 33 | banners: [], 34 | goodList: [], 35 | playList: [], 36 | blocks: [], 37 | page: {}, 38 | tabChange: true, 39 | isloading: true, 40 | scrollTop: {} 41 | 42 | }; 43 | } 44 | 45 | render() { 46 | if (this.state.isloading) { 47 | return }> 54 | } 55 | return ( 56 | } 64 | ref={component => this._scrollView = component} 65 | onScrollEndDrag={this.handleScrollEnd} 66 | onScroll={this.isTab} 67 | // scrollEventThrottle={1} 68 | stickyHeaderIndices={[1]} 69 | > 70 | 71 | { 72 | let { height } = e.nativeEvent.layout; 73 | this.setState({ headHeight: height }); // 给头部高度赋值 74 | }}> 75 | 76 | 77 | 78 | 79 | 80 | <_Tabs tabs={{ changePage0: this.changePage0, changePage1: this.changePage1, tabChange: this.state.tabChange }}> 81 | 82 | 83 | ) 84 | } 85 | 86 | scrollTop = (event) => { 87 | this.setState( 88 | { 89 | scrollTop: event.nativeEvent.contentOffset.y 90 | } 91 | ) 92 | } 93 | _onRefresh = () => { 94 | this.setState({ 95 | refreshing: true, 96 | }); 97 | this.lodowMore() 98 | this.updata() 99 | setTimeout(() => { 100 | this.lodowMore() 101 | }, 50); 102 | this.setState({ refreshing: false }); 103 | } 104 | updata = () => { 105 | this.setState({ 106 | goodList: [], 107 | playList: [], 108 | }) 109 | } 110 | changePage0 = () => { 111 | 112 | this.setState({ 113 | page: 0 114 | }) 115 | } 116 | changePage1 = () => { 117 | this.setState({ 118 | page: 1 119 | }) 120 | } 121 | tabChange = () => { 122 | this.setState({ 123 | page: {} 124 | }) 125 | if (this.state.tabChange == true) { 126 | this.setState({ 127 | tabChange: false 128 | }) 129 | } else { 130 | this.setState({ 131 | tabChange: true 132 | }) 133 | } 134 | setTimeout(() => { 135 | this.resScrollTop() 136 | }, 20); 137 | 138 | } 139 | resScrollTop() { 140 | if (this.state.scrollTop > 310) { 141 | this._scrollView.scrollWithoutAnimationTo(310, 0); 142 | } 143 | } 144 | componentDidMount() { 145 | this.lodowMore() 146 | this.setState({ 147 | refreshing: true 148 | }) 149 | setTimeout(() => { 150 | this.lodowMore() 151 | }, 50); 152 | } 153 | 154 | lodowMore = () => { 155 | fetch("https://mall.bilibili.com/mall-c/home/index/v2?mVersion=17").then(res => res.json()) 156 | .then(data => { 157 | this.setState((state) => { 158 | return { 159 | tabs: data.data.vo.tabs, 160 | banners: data.data.vo.banners, 161 | blocks: data.data.vo.blocks, 162 | goodList: state.goodList.concat(data.data.vo.feeds.list.slice(0, 4)), 163 | playList: state.playList.concat(data.data.vo.feeds.list), 164 | isloading: false, 165 | refreshing: false 166 | } 167 | }) 168 | }) 169 | } 170 | renderPage(image, index) { 171 | return ( 172 | 173 | 174 | 175 | ); 176 | } 177 | handleScrollEnd = (event) => { 178 | const contentHeight = event.nativeEvent.contentSize.height; 179 | const scrollViewHeight = event.nativeEvent.layoutMeasurement.height; 180 | const scrollOffset = event.nativeEvent.contentOffset.y; 181 | const isEndReached = scrollOffset + scrollViewHeight >= contentHeight - 10; // 是否滑动到底部 182 | const isContentFillPage = contentHeight >= scrollViewHeight; // 内容高度是否大于列表高度 183 | if (isContentFillPage && isEndReached) { 184 | this.lodowMore() 185 | this.lodowMore() 186 | 187 | } 188 | }; 189 | } 190 | const styles = StyleSheet.create({ 191 | }); -------------------------------------------------------------------------------- /src/components/MovieThree.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { StyleSheet, Image, View, Text, Dimensions, ScrollView } from 'react-native'; 3 | import { Container, Header, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base'; 4 | 5 | const BannerWidth = (Dimensions.get('window').width * 0.96); 6 | const screenLeft = (Dimensions.get('window').width * 0.02); 7 | 8 | //卡片图片资源 9 | const cards = [ 10 | { 11 | id: 1, 12 | count: "1.9万追剧", 13 | name: "大恋爱", 14 | title: "和喜欢的人一起吃饭", 15 | imageurl: "http://i0.hdslb.com/bfs/bangumi/29e7ea9cf0a619618841caeca1a61032e4f0a2c6.jpg", 16 | }, 17 | { 18 | id: 1, 19 | badge: "会员抢先", 20 | count: "1.3万追剧", 21 | name: "万福", 22 | title: "你醒啦", 23 | imageurl: "http://i0.hdslb.com/bfs/bangumi/4c6748f24b0cee23fe71d387a820e7b1e651ccb3.jpg", 24 | }, 25 | { 26 | id: 1, 27 | count: "15.6万系列追剧", 28 | name: "双姝 第二季", 29 | title: "即将上线", 30 | imageurl: "http://i0.hdslb.com/bfs/bangumi/5c104fc023c5a6f9b6f59cd83d276a8c86f4d21d.jpg", 31 | }, 32 | { 33 | id: 1, 34 | badge: "会员抢先", 35 | count: "9520追剧", 36 | name: "警察之家", 37 | title: "是兔子还是螃蟹", 38 | imageurl: "http://i0.hdslb.com/bfs/bangumi/2bf8fb89f3a386e37e08556d89842590655f3647.png", 39 | }, 40 | { 41 | id: 1, 42 | badge: "限时免费", 43 | count: "4.9万追剧", 44 | name: "萤之光 第一季", 45 | title: "情侣同款睡姿", 46 | imageurl: "http://i0.hdslb.com/bfs/bangumi/4a28a26cf87a1f9f4c5a5392b3c69a2f39d64a5c.jpg", 47 | }, 48 | { 49 | id: 1, 50 | badge: "会员专享", 51 | count: "1.6万追剧", 52 | name: "原以为命中注定的恋爱", 53 | title: "不会发生在我身上", 54 | imageurl: "http://i0.hdslb.com/bfs/bangumi/9c6401a78ee23cadb7c8338af517e0b1be489535.jpg", 55 | }, 56 | 57 | ]; 58 | 59 | class MovieThree extends Component { 60 | constructor(props) { 61 | super(props) 62 | this.state = { 63 | flag: true 64 | } 65 | } 66 | 67 | handleClick = () => { 68 | this.setState({ flag: !this.state.flag }) 69 | } 70 | 71 | 72 | 73 | render() { 74 | 75 | return ( 76 | 77 | 78 | 79 | 电视剧热播 80 | 81 | 82 | 85 | 86 | 87 | 88 | { 89 | cards.map((item, index) => { 90 | const bubble=item.badge ? ( 91 | 92 | {item.badge} 93 | ):null 94 | 95 | return ( 96 | 97 | 98 | 99 | {bubble} 100 | {item.count} 101 | 102 | 103 | {item.name} 104 | {item.title} 105 | 106 | ) 107 | 108 | }) 109 | } 110 | 111 | 112 | 117 | 118 | 119 | ) 120 | } 121 | 122 | } 123 | 124 | const styles = StyleSheet.create({ 125 | //番剧卡片 126 | fanju: { 127 | width: BannerWidth, 128 | height: 525, 129 | marginLeft: screenLeft, 130 | overflow: "hidden", 131 | marginTop: 15, 132 | flex: 1, 133 | // 横向 居中 134 | flexDirection: 'row', 135 | position: "relative", 136 | borderBottomWidth: 0.5, 137 | borderBottomColor: "#DCDCDC", 138 | }, 139 | //番剧卡片标题 140 | fanjutitle: { 141 | width: "100%", 142 | height: 30, 143 | flex: 1, 144 | flexDirection: 'row', 145 | fontSize: 5, 146 | fontWeight: "normal" 147 | 148 | }, 149 | //番剧卡片的中间六个小卡片 150 | fanjucards: { 151 | width: "100%", 152 | height: 460, 153 | position: "absolute", 154 | top: 30, 155 | left: 0, 156 | right: 0, 157 | borderRadius: 5, 158 | overflow: "hidden", 159 | flex: 1, 160 | flexDirection: "row", 161 | flexWrap: "wrap", 162 | justifyContent: "space-between", 163 | alignContent: "space-between", 164 | 165 | }, 166 | //一个小卡片 167 | fanjucard: { 168 | width: "48%", 169 | height: 150, 170 | borderRadius: 5, 171 | overflow: "hidden", 172 | }, 173 | //浮在卡片上一层的样式 174 | surface: { 175 | width: "100%", 176 | height: 110, 177 | position: "absolute", 178 | top: 0, 179 | left: 0, 180 | zIndex: 100 181 | }, 182 | //左上角 心 183 | surfaceicon: { 184 | width: 30, 185 | height: 25, 186 | fontSize: 22, 187 | borderBottomRightRadius: 5, 188 | textAlign: "center", 189 | lineHeight: 24, 190 | // 设置背景颜色时同时设置透明度 防止背景颜色影响字体颜色 191 | color: "white", 192 | backgroundColor: 'rgba(0, 0, 0, 0.4)', 193 | }, 194 | 195 | }) 196 | 197 | 198 | 199 | 200 | export default MovieThree; -------------------------------------------------------------------------------- /src/components/MovieOne.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { StyleSheet, Image, View, Text, Dimensions, ScrollView } from 'react-native'; 3 | import { Container, Header, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base'; 4 | 5 | const BannerWidth = (Dimensions.get('window').width * 0.96); 6 | const screenLeft = (Dimensions.get('window').width * 0.02); 7 | 8 | const cards = [ 9 | { 10 | id:1, 11 | count: "14.2万追剧", 12 | name: "守护解放西", 13 | title: "9月14日,警动全城", 14 | imageurl:"http://i0.hdslb.com/bfs/bangumi/29e7ea9cf0a619618841caeca1a61032e4f0a2c6.jpg" , 15 | }, 16 | { 17 | id:1, 18 | count: "", 19 | name: "真实的残酷宫斗" , 20 | title: "亨利八世6位皇后" , 21 | imageurl: "http://i0.hdslb.com/bfs/bangumi/5a95404be7ecacc69167c3eb5e4d3b5383bef25b.png", 22 | }, 23 | { 24 | id:1, 25 | badge: "限时免费", 26 | count: "236.4万系列追剧", 27 | name: "人生一串2", 28 | title: "上串开吃!", 29 | imageurl: "http://i0.hdslb.com/bfs/bangumi/7db272b2e887bb3615a8aee29cf4ed839dc54e82.png", 30 | }, 31 | { 32 | id:1, 33 | count:"22.6万系列追剧", 34 | name: "糟糕的历史", 35 | title: "最魔性历史纪录片", 36 | imageurl: "http://i0.hdslb.com/bfs/bangumi/f3091de24e5ff374ae3920513fecce70a63dc039.jpg", 37 | }, 38 | { 39 | id:1, 40 | count: "", 41 | name: "FOX的北极之旅", 42 | title: "感受北欧极致壮美", 43 | imageurl: "http://i0.hdslb.com/bfs/bangumi/2a2b86986e3e4fcb183f0a282c439bc5f130e9e6.jpg", 44 | }, 45 | { 46 | id:1, 47 | count: "26.2万系列追剧", 48 | name: "我们该玩电子游戏吗", 49 | title: "游戏有助身心健康?", 50 | imageurl:"http://i0.hdslb.com/bfs/bangumi/acda1d7fd8565706b5fd0cb9c0f7b40813467fcc.jpg", 51 | }, 52 | // { 53 | // id:1, 54 | // count: "21.1万系列追剧", 55 | // name: "【纪录】中国古建筑 (2012)", 56 | // title: "中国古建筑之“大势", 57 | // imageurl: "https://i0.hdslb.com/bfs/archive/ad068ea233ef0f4e43158bac020a92c9bd0724dc.jpg", 58 | // }, 59 | // { 60 | // id:1, 61 | // count: "31.8万系列追剧", 62 | // name: "未至之境(英配版)", 63 | // title: "一起探索无人之境", 64 | // imageurl: "https://i0.hdslb.com/bfs/archive/ffd662bc2eb4959574180187155c80b4a1a087be.png", 65 | // }, 66 | ]; 67 | 68 | class MovieOne extends Component { 69 | constructor(props) { 70 | super(props) 71 | this.state = { 72 | flag: true 73 | } 74 | } 75 | 76 | handleClick = () => { 77 | this.setState({ flag: !this.state.flag }) 78 | } 79 | 80 | render() { 81 | 82 | return ( 83 | 84 | 85 | 86 | 纪录片热播 87 | 88 | 89 | 92 | 93 | 94 | 95 | { 96 | cards.map((item, index) => { 97 | const bubble=item.badge ? ( 98 | 99 | {item.badge} 100 | ):null 101 | 102 | return ( 103 | 104 | 105 | 106 | {bubble} 107 | {item.count} 108 | 109 | 110 | {item.name} 111 | {item.title} 112 | 113 | ) 114 | 115 | }) 116 | } 117 | 118 | 119 | 124 | 125 | 126 | ) 127 | } 128 | 129 | } 130 | 131 | const styles = StyleSheet.create({ 132 | //番剧卡片 133 | fanju: { 134 | width: BannerWidth, 135 | height: 525, 136 | marginLeft: screenLeft, 137 | overflow: "hidden", 138 | marginTop: 15, 139 | flex: 1, 140 | // 横向 居中 141 | flexDirection: 'row', 142 | position: "relative", 143 | borderBottomWidth: 0.5, 144 | borderBottomColor: "#DCDCDC", 145 | }, 146 | //番剧卡片标题 147 | fanjutitle: { 148 | width: "100%", 149 | height: 30, 150 | flex: 1, 151 | flexDirection: 'row', 152 | fontSize: 5, 153 | fontWeight: "normal" 154 | 155 | }, 156 | //番剧卡片的中间六个小卡片 157 | fanjucards: { 158 | width: "100%", 159 | height: 460, 160 | position: "absolute", 161 | top: 30, 162 | left: 0, 163 | right: 0, 164 | borderRadius: 5, 165 | overflow: "hidden", 166 | flexDirection: "row", 167 | flexWrap: "wrap", 168 | justifyContent:"space-between", 169 | alignContent:"space-between" 170 | 171 | 172 | }, 173 | //一个小卡片 174 | fanjucard: { 175 | width: "31%", 176 | height: 220, 177 | borderRadius: 5, 178 | overflow: "hidden", 179 | 180 | }, 181 | //浮在卡片上一层的样式 182 | surface: { 183 | width: "100%", 184 | height: 180, 185 | position: "absolute", 186 | top: 0, 187 | left: 0, 188 | zIndex: 100 189 | }, 190 | //左上角 心 191 | surfaceicon: { 192 | width: 30, 193 | height: 25, 194 | fontSize: 22, 195 | borderBottomRightRadius: 5, 196 | textAlign: "center", 197 | lineHeight: 24, 198 | // 设置背景颜色时同时设置透明度 防止背景颜色影响字体颜色 199 | color: "white", 200 | backgroundColor: 'rgba(0, 0, 0, 0.4)', 201 | }, 202 | 203 | }) 204 | 205 | 206 | 207 | 208 | export default MovieOne; -------------------------------------------------------------------------------- /src/components/MovieTwo.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { StyleSheet, Image, View, Text, Dimensions, ScrollView } from 'react-native'; 3 | import { Container, Header, Content, Card, CardItem, Thumbnail, Button, Icon, Left, Body, Right, Badge } from 'native-base'; 4 | 5 | const BannerWidth = (Dimensions.get('window').width * 0.96); 6 | const screenLeft = (Dimensions.get('window').width * 0.02); 7 | 8 | const cards = [ 9 | { 10 | id:1, 11 | badge: "会员专享", 12 | count: "71万系列追剧", 13 | name: "哈利·波特与死亡圣器(下)", 14 | title: "终极之战打响", 15 | imageurl:"http://i0.hdslb.com/bfs/bangumi/abcafcf95a0853f709d735f10561b993d0fc05bd.jpg" , 16 | }, 17 | { 18 | id:1, 19 | badge: "会员专享", 20 | count: "71万系列追剧", 21 | name: "哈利·波特与死亡圣器(上)" , 22 | title: "三人组寻找魂器" , 23 | imageurl: "http://i0.hdslb.com/bfs/bangumi/d435abc79671d66ce826eea03911b3d3074d27b7.jpg", 24 | }, 25 | { 26 | id:1, 27 | badge: "会员半价", 28 | count: "14.6万追剧", 29 | name: "蜘蛛侠:英雄远征", 30 | title: "小蜘蛛登陆B站!", 31 | imageurl: "http://i0.hdslb.com/bfs/bangumi/37ecc29ada354bc61b9e237203fff3f4f358f731.jpg", 32 | }, 33 | { 34 | id:1, 35 | count:"2.6万追剧", 36 | name: "罗生门", 37 | title: "黑泽明经典悬疑神作", 38 | imageurl:"http://i0.hdslb.com/bfs/bangumi/9050447827d4c7fd88f6a8c536b84e3a0e1b6912.jpg", 39 | }, 40 | { 41 | id:1, 42 | count: "73.6万追剧", 43 | name: "我想吃掉你的胰脏", 44 | title: "免费首播!", 45 | imageurl: "http://i0.hdslb.com/bfs/bangumi/fd5891a000ecdf6e76fdfea1fc204776f728c9ba.jpg", 46 | }, 47 | { 48 | id:1, 49 | count: "9992追剧", 50 | name: "东京物语", 51 | title: "东京真的太远了", 52 | imageurl:"http://i0.hdslb.com/bfs/bangumi/42af0d04487472725d24ff3bfa01a347f87e7248.jpg", 53 | }, 54 | // { 55 | // id:1, 56 | // count: "2.8万追剧", 57 | // name: "毒战", 58 | // title: "【古天乐/孙红雷】", 59 | // imageurl: "https://i0.hdslb.com/bfs/archive/9ca6b32956a8abbcae1cb9db17ddaa71509446f8.jpg", 60 | // }, 61 | // { 62 | // id:1, 63 | // count: "13.2万追剧", 64 | // name: "怦然心动", 65 | // title: "重温心动初恋", 66 | // imageurl:"https://i1.hdslb.com/bfs/archive/94b509c59ceb8ad29f47fa39630367b860e96d48.jpg", 67 | // }, 68 | ]; 69 | 70 | class MovieTwo extends Component { 71 | constructor(props) { 72 | super(props) 73 | this.state = { 74 | flag: true 75 | } 76 | } 77 | 78 | handleClick = () => { 79 | this.setState({ flag: !this.state.flag }) 80 | } 81 | 82 | render() { 83 | 84 | return ( 85 | 86 | 87 | 88 | 电影热播 89 | 90 | 91 | 94 | 95 | 96 | 97 | { 98 | cards.map((item, index) => { 99 | const bubble=item.badge ? ( 100 | 101 | {item.badge} 102 | ):null 103 | 104 | return ( 105 | 106 | 107 | 108 | {bubble} 109 | {item.count} 110 | 111 | 112 | {item.name} 113 | {item.title} 114 | 115 | ) 116 | 117 | }) 118 | } 119 | 120 | 121 | 126 | 127 | 128 | ) 129 | } 130 | 131 | } 132 | 133 | const styles = StyleSheet.create({ 134 | //番剧卡片 135 | fanju: { 136 | width: BannerWidth, 137 | height: 525, 138 | marginLeft: screenLeft, 139 | overflow: "hidden", 140 | marginTop: 15, 141 | flex: 1, 142 | // 横向 居中 143 | flexDirection: 'row', 144 | position: "relative", 145 | borderBottomWidth: 0.5, 146 | borderBottomColor: "#DCDCDC", 147 | }, 148 | //番剧卡片标题 149 | fanjutitle: { 150 | width: "100%", 151 | height: 30, 152 | flex: 1, 153 | flexDirection: 'row', 154 | fontSize: 5, 155 | fontWeight: "normal" 156 | 157 | }, 158 | //番剧卡片的中间六个小卡片 159 | fanjucards: { 160 | width: "100%", 161 | height: 460, 162 | position: "absolute", 163 | top: 30, 164 | left: 0, 165 | right: 0, 166 | borderRadius: 5, 167 | overflow: "hidden", 168 | flexDirection: "row", 169 | flexWrap: "wrap", 170 | justifyContent:"space-between", 171 | alignContent:"space-between" 172 | 173 | 174 | }, 175 | //一个小卡片 176 | fanjucard: { 177 | width: "31%", 178 | height: 220, 179 | borderRadius: 5, 180 | overflow: "hidden", 181 | 182 | }, 183 | //浮在卡片上一层的样式 184 | surface: { 185 | width: "100%", 186 | height: 180, 187 | position: "absolute", 188 | top: 0, 189 | left: 0, 190 | zIndex: 100 191 | }, 192 | //左上角 心 193 | surfaceicon: { 194 | width: 30, 195 | height: 25, 196 | fontSize: 22, 197 | borderBottomRightRadius: 5, 198 | textAlign: "center", 199 | lineHeight: 24, 200 | // 设置背景颜色时同时设置透明度 防止背景颜色影响字体颜色 201 | color: "white", 202 | backgroundColor: 'rgba(0, 0, 0, 0.4)', 203 | }, 204 | 205 | }) 206 | 207 | 208 | 209 | 210 | export default MovieTwo; -------------------------------------------------------------------------------- /android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_feather.json: -------------------------------------------------------------------------------- 1 | { 2 | "activity": 61696, 3 | "airplay": 61697, 4 | "alert-circle": 61698, 5 | "alert-octagon": 61699, 6 | "alert-triangle": 61700, 7 | "align-center": 61701, 8 | "align-justify": 61702, 9 | "align-left": 61703, 10 | "align-right": 61704, 11 | "anchor": 61705, 12 | "aperture": 61706, 13 | "archive": 61707, 14 | "arrow-down": 61708, 15 | "arrow-down-circle": 61709, 16 | "arrow-down-left": 61710, 17 | "arrow-down-right": 61711, 18 | "arrow-left": 61712, 19 | "arrow-left-circle": 61713, 20 | "arrow-right": 61714, 21 | "arrow-right-circle": 61715, 22 | "arrow-up": 61716, 23 | "arrow-up-circle": 61717, 24 | "arrow-up-left": 61718, 25 | "arrow-up-right": 61719, 26 | "at-sign": 61720, 27 | "award": 61721, 28 | "bar-chart": 61722, 29 | "bar-chart-2": 61723, 30 | "battery": 61724, 31 | "battery-charging": 61725, 32 | "bell": 61726, 33 | "bell-off": 61727, 34 | "bluetooth": 61728, 35 | "bold": 61729, 36 | "book": 61730, 37 | "book-open": 61731, 38 | "bookmark": 61732, 39 | "box": 61733, 40 | "briefcase": 61734, 41 | "calendar": 61735, 42 | "camera": 61736, 43 | "camera-off": 61737, 44 | "cast": 61738, 45 | "check": 61739, 46 | "check-circle": 61740, 47 | "check-square": 61741, 48 | "chevron-down": 61742, 49 | "chevron-left": 61743, 50 | "chevron-right": 61744, 51 | "chevron-up": 61745, 52 | "chevrons-down": 61746, 53 | "chevrons-left": 61747, 54 | "chevrons-right": 61748, 55 | "chevrons-up": 61749, 56 | "chrome": 61750, 57 | "circle": 61751, 58 | "clipboard": 61752, 59 | "clock": 61753, 60 | "cloud": 61754, 61 | "cloud-drizzle": 61755, 62 | "cloud-lightning": 61756, 63 | "cloud-off": 61757, 64 | "cloud-rain": 61758, 65 | "cloud-snow": 61759, 66 | "code": 61760, 67 | "codepen": 61761, 68 | "codesandbox": 61972, 69 | "coffee": 61762, 70 | "columns": 61973, 71 | "command": 61763, 72 | "compass": 61764, 73 | "copy": 61765, 74 | "corner-down-left": 61766, 75 | "corner-down-right": 61767, 76 | "corner-left-down": 61768, 77 | "corner-left-up": 61769, 78 | "corner-right-down": 61770, 79 | "corner-right-up": 61771, 80 | "corner-up-left": 61772, 81 | "corner-up-right": 61773, 82 | "cpu": 61774, 83 | "credit-card": 61775, 84 | "crop": 61776, 85 | "crosshair": 61777, 86 | "database": 61778, 87 | "delete": 61779, 88 | "disc": 61780, 89 | "dollar-sign": 61781, 90 | "download": 61782, 91 | "download-cloud": 61783, 92 | "droplet": 61784, 93 | "edit": 61785, 94 | "edit-2": 61786, 95 | "edit-3": 61787, 96 | "external-link": 61788, 97 | "eye": 61789, 98 | "eye-off": 61790, 99 | "facebook": 61791, 100 | "fast-forward": 61792, 101 | "feather": 61793, 102 | "figma": 61970, 103 | "file": 61794, 104 | "file-minus": 61795, 105 | "file-plus": 61796, 106 | "file-text": 61797, 107 | "film": 61798, 108 | "filter": 61799, 109 | "flag": 61800, 110 | "folder": 61801, 111 | "folder-minus": 61802, 112 | "folder-plus": 61803, 113 | "frown": 61804, 114 | "gift": 61805, 115 | "git-branch": 61806, 116 | "git-commit": 61807, 117 | "git-merge": 61808, 118 | "git-pull-request": 61809, 119 | "github": 61810, 120 | "gitlab": 61811, 121 | "globe": 61812, 122 | "grid": 61813, 123 | "hard-drive": 61814, 124 | "hash": 61815, 125 | "headphones": 61816, 126 | "heart": 61817, 127 | "help-circle": 61818, 128 | "hexagon": 61974, 129 | "home": 61819, 130 | "image": 61820, 131 | "inbox": 61821, 132 | "info": 61822, 133 | "instagram": 61823, 134 | "italic": 61824, 135 | "key": 61967, 136 | "layers": 61825, 137 | "layout": 61826, 138 | "life-buoy": 61827, 139 | "link": 61828, 140 | "link-2": 61829, 141 | "linkedin": 61830, 142 | "list": 61831, 143 | "loader": 61832, 144 | "lock": 61833, 145 | "log-in": 61834, 146 | "log-out": 61835, 147 | "mail": 61836, 148 | "map": 61837, 149 | "map-pin": 61838, 150 | "maximize": 61839, 151 | "maximize-2": 61840, 152 | "meh": 61841, 153 | "menu": 61842, 154 | "message-circle": 61843, 155 | "message-square": 61844, 156 | "mic": 61845, 157 | "mic-off": 61846, 158 | "minimize": 61847, 159 | "minimize-2": 61848, 160 | "minus": 61849, 161 | "minus-circle": 61850, 162 | "minus-square": 61851, 163 | "monitor": 61852, 164 | "moon": 61853, 165 | "more-horizontal": 61854, 166 | "more-vertical": 61855, 167 | "mouse-pointer": 61968, 168 | "move": 61856, 169 | "music": 61857, 170 | "navigation": 61858, 171 | "navigation-2": 61859, 172 | "octagon": 61860, 173 | "package": 61861, 174 | "paperclip": 61862, 175 | "pause": 61863, 176 | "pause-circle": 61864, 177 | "pen-tool": 61969, 178 | "percent": 61865, 179 | "phone": 61866, 180 | "phone-call": 61867, 181 | "phone-forwarded": 61868, 182 | "phone-incoming": 61869, 183 | "phone-missed": 61870, 184 | "phone-off": 61871, 185 | "phone-outgoing": 61872, 186 | "pie-chart": 61873, 187 | "play": 61874, 188 | "play-circle": 61875, 189 | "plus": 61876, 190 | "plus-circle": 61877, 191 | "plus-square": 61878, 192 | "pocket": 61879, 193 | "power": 61880, 194 | "printer": 61881, 195 | "radio": 61882, 196 | "refresh-ccw": 61883, 197 | "refresh-cw": 61884, 198 | "repeat": 61885, 199 | "rewind": 61886, 200 | "rotate-ccw": 61887, 201 | "rotate-cw": 61888, 202 | "rss": 61889, 203 | "save": 61890, 204 | "scissors": 61891, 205 | "search": 61892, 206 | "send": 61893, 207 | "server": 61894, 208 | "settings": 61895, 209 | "share": 61896, 210 | "share-2": 61897, 211 | "shield": 61898, 212 | "shield-off": 61899, 213 | "shopping-bag": 61900, 214 | "shopping-cart": 61901, 215 | "shuffle": 61902, 216 | "sidebar": 61903, 217 | "skip-back": 61904, 218 | "skip-forward": 61905, 219 | "slack": 61906, 220 | "slash": 61907, 221 | "sliders": 61908, 222 | "smartphone": 61909, 223 | "smile": 61910, 224 | "speaker": 61911, 225 | "square": 61912, 226 | "star": 61913, 227 | "stop-circle": 61914, 228 | "sun": 61915, 229 | "sunrise": 61916, 230 | "sunset": 61917, 231 | "tablet": 61975, 232 | "tag": 61919, 233 | "target": 61920, 234 | "terminal": 61921, 235 | "thermometer": 61922, 236 | "thumbs-down": 61923, 237 | "thumbs-up": 61924, 238 | "toggle-left": 61925, 239 | "toggle-right": 61926, 240 | "trash": 61927, 241 | "trash-2": 61928, 242 | "trello": 61929, 243 | "trending-down": 61930, 244 | "trending-up": 61931, 245 | "triangle": 61932, 246 | "truck": 61933, 247 | "tv": 61934, 248 | "twitter": 61935, 249 | "type": 61936, 250 | "umbrella": 61937, 251 | "underline": 61938, 252 | "unlock": 61939, 253 | "upload": 61940, 254 | "upload-cloud": 61941, 255 | "user": 61942, 256 | "user-check": 61943, 257 | "user-minus": 61944, 258 | "user-plus": 61945, 259 | "user-x": 61946, 260 | "users": 61947, 261 | "video": 61948, 262 | "video-off": 61949, 263 | "voicemail": 61950, 264 | "volume": 61951, 265 | "volume-1": 61952, 266 | "volume-2": 61953, 267 | "volume-x": 61954, 268 | "watch": 61955, 269 | "wifi": 61956, 270 | "wifi-off": 61957, 271 | "wind": 61958, 272 | "x": 61959, 273 | "x-circle": 61960, 274 | "x-octagon": 61971, 275 | "x-square": 61961, 276 | "youtube": 61962, 277 | "zap": 61963, 278 | "zap-off": 61964, 279 | "zoom-in": 61965, 280 | "zoom-out": 61966 281 | } -------------------------------------------------------------------------------- /android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_antdesign.json: -------------------------------------------------------------------------------- 1 | { 2 | "stepforward": 58880, 3 | "stepbackward": 58881, 4 | "forward": 58882, 5 | "banckward": 58883, 6 | "caretright": 58884, 7 | "caretleft": 58885, 8 | "caretdown": 58886, 9 | "caretup": 58887, 10 | "rightcircle": 58888, 11 | "leftcircle": 58889, 12 | "upcircle": 58890, 13 | "downcircle": 58891, 14 | "rightcircleo": 58892, 15 | "leftcircleo": 58893, 16 | "upcircleo": 58894, 17 | "downcircleo": 58895, 18 | "verticleleft": 58896, 19 | "verticleright": 58897, 20 | "back": 58898, 21 | "retweet": 58899, 22 | "shrink": 58900, 23 | "arrowsalt": 58901, 24 | "doubleright": 58903, 25 | "doubleleft": 58904, 26 | "arrowdown": 58905, 27 | "arrowup": 58906, 28 | "arrowright": 58907, 29 | "arrowleft": 58908, 30 | "down": 58909, 31 | "up": 58910, 32 | "right": 58911, 33 | "left": 58912, 34 | "minussquareo": 58913, 35 | "minuscircle": 58914, 36 | "minuscircleo": 58915, 37 | "minus": 58916, 38 | "pluscircleo": 58917, 39 | "pluscircle": 58918, 40 | "plus": 58919, 41 | "infocirlce": 58920, 42 | "infocirlceo": 58921, 43 | "info": 58922, 44 | "exclamation": 58923, 45 | "exclamationcircle": 58924, 46 | "exclamationcircleo": 58925, 47 | "closecircle": 58926, 48 | "closecircleo": 58927, 49 | "checkcircle": 58928, 50 | "checkcircleo": 58929, 51 | "check": 58930, 52 | "close": 58931, 53 | "customerservice": 58932, 54 | "creditcard": 58933, 55 | "codesquareo": 58934, 56 | "book": 58935, 57 | "barschart": 58936, 58 | "bars": 58937, 59 | "question": 58938, 60 | "questioncircle": 58939, 61 | "questioncircleo": 58940, 62 | "pause": 58941, 63 | "pausecircle": 58942, 64 | "pausecircleo": 58943, 65 | "clockcircle": 58944, 66 | "clockcircleo": 58945, 67 | "swap": 58946, 68 | "swapleft": 58947, 69 | "swapright": 58948, 70 | "plussquareo": 58949, 71 | "frown": 58950, 72 | "menufold": 58968, 73 | "mail": 58969, 74 | "link": 58971, 75 | "areachart": 58972, 76 | "linechart": 58973, 77 | "home": 58974, 78 | "laptop": 58975, 79 | "star": 58976, 80 | "staro": 58977, 81 | "filter": 58979, 82 | "meho": 58982, 83 | "meh": 58983, 84 | "shoppingcart": 58984, 85 | "save": 58985, 86 | "user": 58986, 87 | "videocamera": 58987, 88 | "totop": 58988, 89 | "team": 58989, 90 | "sharealt": 58993, 91 | "setting": 58994, 92 | "picture": 58996, 93 | "phone": 58997, 94 | "paperclip": 58998, 95 | "notification": 58999, 96 | "menuunfold": 59001, 97 | "inbox": 59002, 98 | "lock": 59003, 99 | "qrcode": 59004, 100 | "tags": 59005, 101 | "tagso": 59006, 102 | "cloudo": 59007, 103 | "cloud": 59008, 104 | "cloudupload": 59009, 105 | "clouddownload": 59010, 106 | "clouddownloado": 59011, 107 | "clouduploado": 59012, 108 | "enviroment": 59013, 109 | "enviromento": 59014, 110 | "eye": 59015, 111 | "eyeo": 59016, 112 | "camera": 59017, 113 | "camerao": 59018, 114 | "windows": 59019, 115 | "export2": 59024, 116 | "export": 59025, 117 | "circledowno": 59027, 118 | "circledown": 59028, 119 | "hdd": 59034, 120 | "ie": 59035, 121 | "delete": 59039, 122 | "enter": 59040, 123 | "pushpino": 59041, 124 | "pushpin": 59042, 125 | "heart": 59043, 126 | "hearto": 59044, 127 | "smile-circle": 59047, 128 | "smileo": 59048, 129 | "frowno": 59049, 130 | "calculator": 59050, 131 | "chrome": 59052, 132 | "github": 59053, 133 | "iconfontdesktop": 59060, 134 | "caretcircleoup": 59061, 135 | "upload": 59062, 136 | "download": 59063, 137 | "piechart": 59064, 138 | "lock1": 59065, 139 | "unlock": 59066, 140 | "windowso": 59068, 141 | "dotchart": 59069, 142 | "barchart": 59070, 143 | "codesquare": 59071, 144 | "plussquare": 59072, 145 | "minussquare": 59073, 146 | "closesquare": 59074, 147 | "closesquareo": 59075, 148 | "checksquare": 59076, 149 | "checksquareo": 59077, 150 | "fastbackward": 59078, 151 | "fastforward": 59079, 152 | "upsquare": 59080, 153 | "downsquare": 59081, 154 | "leftsquare": 59082, 155 | "rightsquare": 59083, 156 | "rightsquareo": 59084, 157 | "leftsquareo": 59085, 158 | "down-square-o": 59086, 159 | "up-square-o": 59087, 160 | "play": 59088, 161 | "playcircleo": 59089, 162 | "tag": 59090, 163 | "tago": 59091, 164 | "addfile": 59664, 165 | "folder1": 58978, 166 | "file1": 58980, 167 | "switcher": 59667, 168 | "addfolder": 59668, 169 | "folderopen": 59033, 170 | "search1": 58992, 171 | "ellipsis1": 58951, 172 | "calendar": 59067, 173 | "filetext1": 59032, 174 | "copy1": 58952, 175 | "jpgfile1": 59036, 176 | "pdffile1": 59059, 177 | "exclefile1": 59056, 178 | "pptfile1": 59057, 179 | "unknowfile1": 59055, 180 | "wordfile1": 59058, 181 | "dingding": 59683, 182 | "dingding-o": 59685, 183 | "mobile1": 59000, 184 | "tablet1": 58990, 185 | "bells": 58958, 186 | "disconnect": 58959, 187 | "database": 58960, 188 | "barcode": 58962, 189 | "hourglass": 58963, 190 | "key": 58964, 191 | "flag": 58965, 192 | "layout": 58966, 193 | "printer": 58995, 194 | "USB": 59095, 195 | "skin": 59096, 196 | "tool": 59097, 197 | "car": 59100, 198 | "addusergroup": 59101, 199 | "carryout": 59103, 200 | "deleteuser": 59104, 201 | "deleteusergroup": 59105, 202 | "man": 59106, 203 | "isv": 59107, 204 | "gift": 59108, 205 | "idcard": 59109, 206 | "medicinebox": 59110, 207 | "redenvelopes": 59111, 208 | "rest": 59112, 209 | "Safety": 59114, 210 | "wallet": 59115, 211 | "woman": 59116, 212 | "adduser": 59117, 213 | "bank": 59118, 214 | "Trophy": 59119, 215 | "loading1": 59054, 216 | "loading2": 58957, 217 | "like2": 59037, 218 | "dislike2": 59038, 219 | "like1": 58956, 220 | "dislike1": 58955, 221 | "bulb1": 58953, 222 | "rocket1": 59663, 223 | "select1": 58954, 224 | "apple1": 59020, 225 | "apple-o": 59092, 226 | "android1": 59704, 227 | "android": 59021, 228 | "aliwangwang-o1": 59023, 229 | "aliwangwang": 59022, 230 | "pay-circle1": 59045, 231 | "pay-circle-o1": 59046, 232 | "poweroff": 59093, 233 | "trademark": 58961, 234 | "find": 59099, 235 | "copyright": 59102, 236 | "sound": 59113, 237 | "earth": 59121, 238 | "wifi": 59094, 239 | "sync": 59098, 240 | "login": 58967, 241 | "logout": 58970, 242 | "reload1": 58902, 243 | "message1": 59051, 244 | "shake": 59727, 245 | "API": 59729, 246 | "appstore-o": 59029, 247 | "appstore1": 59030, 248 | "scan1": 59031, 249 | "exception1": 58981, 250 | "contacts": 59120, 251 | "solution1": 58991, 252 | "fork": 59122, 253 | "edit": 59026, 254 | "form": 59798, 255 | "warning": 59799, 256 | "table": 59800, 257 | "profile": 59801, 258 | "dashboard": 59802, 259 | "indent-left": 59814, 260 | "indent-right": 59815, 261 | "menu-unfold": 59820, 262 | "menu-fold": 59821, 263 | "antdesign": 59826, 264 | "alipay-square": 59827, 265 | "codepen-circle": 59828, 266 | "google": 59829, 267 | "amazon": 59830, 268 | "codepen": 59831, 269 | "facebook-square": 59832, 270 | "dropbox": 59833, 271 | "googleplus": 59834, 272 | "linkedin-square": 59835, 273 | "medium-monogram": 59836, 274 | "gitlab": 59837, 275 | "medium-wordmark": 59838, 276 | "QQ": 59839, 277 | "skype": 59840, 278 | "taobao-square": 59841, 279 | "alipay-circle": 59842, 280 | "youtube": 59843, 281 | "wechat": 59844, 282 | "twitter": 59845, 283 | "weibo": 59846, 284 | "HTML": 59847, 285 | "taobao-circle": 59123, 286 | "weibo-circle": 59124, 287 | "weibo-square": 59125, 288 | "CodeSandbox": 59860, 289 | "aliyun": 59892, 290 | "zhihu": 59139, 291 | "behance": 59143, 292 | "dribbble": 59145, 293 | "dribbble-square": 59146, 294 | "behance-square": 59144, 295 | "file-markdown": 59140, 296 | "instagram": 59147, 297 | "yuque": 59148, 298 | "slack": 59141, 299 | "slack-square": 59142 300 | } -------------------------------------------------------------------------------- /android/app/src/main/res/raw/node_modules_reactnativevectoricons_glyphmaps_foundation.json: -------------------------------------------------------------------------------- 1 | { 2 | "address-book": 61696, 3 | "alert": 61697, 4 | "align-center": 61698, 5 | "align-justify": 61699, 6 | "align-left": 61700, 7 | "align-right": 61701, 8 | "anchor": 61702, 9 | "annotate": 61703, 10 | "archive": 61704, 11 | "arrow-down": 61705, 12 | "arrow-left": 61706, 13 | "arrow-right": 61707, 14 | "arrow-up": 61708, 15 | "arrows-compress": 61709, 16 | "arrows-expand": 61710, 17 | "arrows-in": 61711, 18 | "arrows-out": 61712, 19 | "asl": 61713, 20 | "asterisk": 61714, 21 | "at-sign": 61715, 22 | "background-color": 61716, 23 | "battery-empty": 61717, 24 | "battery-full": 61718, 25 | "battery-half": 61719, 26 | "bitcoin-circle": 61720, 27 | "bitcoin": 61721, 28 | "blind": 61722, 29 | "bluetooth": 61723, 30 | "bold": 61724, 31 | "book-bookmark": 61725, 32 | "book": 61726, 33 | "bookmark": 61727, 34 | "braille": 61728, 35 | "burst-new": 61729, 36 | "burst-sale": 61730, 37 | "burst": 61731, 38 | "calendar": 61732, 39 | "camera": 61733, 40 | "check": 61734, 41 | "checkbox": 61735, 42 | "clipboard-notes": 61736, 43 | "clipboard-pencil": 61737, 44 | "clipboard": 61738, 45 | "clock": 61739, 46 | "closed-caption": 61740, 47 | "cloud": 61741, 48 | "comment-minus": 61742, 49 | "comment-quotes": 61743, 50 | "comment-video": 61744, 51 | "comment": 61745, 52 | "comments": 61746, 53 | "compass": 61747, 54 | "contrast": 61748, 55 | "credit-card": 61749, 56 | "crop": 61750, 57 | "crown": 61751, 58 | "css3": 61752, 59 | "database": 61753, 60 | "die-five": 61754, 61 | "die-four": 61755, 62 | "die-one": 61756, 63 | "die-six": 61757, 64 | "die-three": 61758, 65 | "die-two": 61759, 66 | "dislike": 61760, 67 | "dollar-bill": 61761, 68 | "dollar": 61762, 69 | "download": 61763, 70 | "eject": 61764, 71 | "elevator": 61765, 72 | "euro": 61766, 73 | "eye": 61767, 74 | "fast-forward": 61768, 75 | "female-symbol": 61769, 76 | "female": 61770, 77 | "filter": 61771, 78 | "first-aid": 61772, 79 | "flag": 61773, 80 | "folder-add": 61774, 81 | "folder-lock": 61775, 82 | "folder": 61776, 83 | "foot": 61777, 84 | "foundation": 61778, 85 | "graph-bar": 61779, 86 | "graph-horizontal": 61780, 87 | "graph-pie": 61781, 88 | "graph-trend": 61782, 89 | "guide-dog": 61783, 90 | "hearing-aid": 61784, 91 | "heart": 61785, 92 | "home": 61786, 93 | "html5": 61787, 94 | "indent-less": 61788, 95 | "indent-more": 61789, 96 | "info": 61790, 97 | "italic": 61791, 98 | "key": 61792, 99 | "laptop": 61793, 100 | "layout": 61794, 101 | "lightbulb": 61795, 102 | "like": 61796, 103 | "link": 61797, 104 | "list-bullet": 61798, 105 | "list-number": 61799, 106 | "list-thumbnails": 61800, 107 | "list": 61801, 108 | "lock": 61802, 109 | "loop": 61803, 110 | "magnifying-glass": 61804, 111 | "mail": 61805, 112 | "male-female": 61806, 113 | "male-symbol": 61807, 114 | "male": 61808, 115 | "map": 61809, 116 | "marker": 61810, 117 | "megaphone": 61811, 118 | "microphone": 61812, 119 | "minus-circle": 61813, 120 | "minus": 61814, 121 | "mobile-signal": 61815, 122 | "mobile": 61816, 123 | "monitor": 61817, 124 | "mountains": 61818, 125 | "music": 61819, 126 | "next": 61820, 127 | "no-dogs": 61821, 128 | "no-smoking": 61822, 129 | "page-add": 61823, 130 | "page-copy": 61824, 131 | "page-csv": 61825, 132 | "page-delete": 61826, 133 | "page-doc": 61827, 134 | "page-edit": 61828, 135 | "page-export-csv": 61829, 136 | "page-export-doc": 61830, 137 | "page-export-pdf": 61831, 138 | "page-export": 61832, 139 | "page-filled": 61833, 140 | "page-multiple": 61834, 141 | "page-pdf": 61835, 142 | "page-remove": 61836, 143 | "page-search": 61837, 144 | "page": 61838, 145 | "paint-bucket": 61839, 146 | "paperclip": 61840, 147 | "pause": 61841, 148 | "paw": 61842, 149 | "paypal": 61843, 150 | "pencil": 61844, 151 | "photo": 61845, 152 | "play-circle": 61846, 153 | "play-video": 61847, 154 | "play": 61848, 155 | "plus": 61849, 156 | "pound": 61850, 157 | "power": 61851, 158 | "previous": 61852, 159 | "price-tag": 61853, 160 | "pricetag-multiple": 61854, 161 | "print": 61855, 162 | "prohibited": 61856, 163 | "projection-screen": 61857, 164 | "puzzle": 61858, 165 | "quote": 61859, 166 | "record": 61860, 167 | "refresh": 61861, 168 | "results-demographics": 61862, 169 | "results": 61863, 170 | "rewind-ten": 61864, 171 | "rewind": 61865, 172 | "rss": 61866, 173 | "safety-cone": 61867, 174 | "save": 61868, 175 | "share": 61869, 176 | "sheriff-badge": 61870, 177 | "shield": 61871, 178 | "shopping-bag": 61872, 179 | "shopping-cart": 61873, 180 | "shuffle": 61874, 181 | "skull": 61875, 182 | "social-500px": 61876, 183 | "social-adobe": 61877, 184 | "social-amazon": 61878, 185 | "social-android": 61879, 186 | "social-apple": 61880, 187 | "social-behance": 61881, 188 | "social-bing": 61882, 189 | "social-blogger": 61883, 190 | "social-delicious": 61884, 191 | "social-designer-news": 61885, 192 | "social-deviant-art": 61886, 193 | "social-digg": 61887, 194 | "social-dribbble": 61888, 195 | "social-drive": 61889, 196 | "social-dropbox": 61890, 197 | "social-evernote": 61891, 198 | "social-facebook": 61892, 199 | "social-flickr": 61893, 200 | "social-forrst": 61894, 201 | "social-foursquare": 61895, 202 | "social-game-center": 61896, 203 | "social-github": 61897, 204 | "social-google-plus": 61898, 205 | "social-hacker-news": 61899, 206 | "social-hi5": 61900, 207 | "social-instagram": 61901, 208 | "social-joomla": 61902, 209 | "social-lastfm": 61903, 210 | "social-linkedin": 61904, 211 | "social-medium": 61905, 212 | "social-myspace": 61906, 213 | "social-orkut": 61907, 214 | "social-path": 61908, 215 | "social-picasa": 61909, 216 | "social-pinterest": 61910, 217 | "social-rdio": 61911, 218 | "social-reddit": 61912, 219 | "social-skillshare": 61913, 220 | "social-skype": 61914, 221 | "social-smashing-mag": 61915, 222 | "social-snapchat": 61916, 223 | "social-spotify": 61917, 224 | "social-squidoo": 61918, 225 | "social-stack-overflow": 61919, 226 | "social-steam": 61920, 227 | "social-stumbleupon": 61921, 228 | "social-treehouse": 61922, 229 | "social-tumblr": 61923, 230 | "social-twitter": 61924, 231 | "social-vimeo": 61925, 232 | "social-windows": 61926, 233 | "social-xbox": 61927, 234 | "social-yahoo": 61928, 235 | "social-yelp": 61929, 236 | "social-youtube": 61930, 237 | "social-zerply": 61931, 238 | "social-zurb": 61932, 239 | "sound": 61933, 240 | "star": 61934, 241 | "stop": 61935, 242 | "strikethrough": 61936, 243 | "subscript": 61937, 244 | "superscript": 61938, 245 | "tablet-landscape": 61939, 246 | "tablet-portrait": 61940, 247 | "target-two": 61941, 248 | "target": 61942, 249 | "telephone-accessible": 61943, 250 | "telephone": 61944, 251 | "text-color": 61945, 252 | "thumbnails": 61946, 253 | "ticket": 61947, 254 | "torso-business": 61948, 255 | "torso-female": 61949, 256 | "torso": 61950, 257 | "torsos-all-female": 61951, 258 | "torsos-all": 61952, 259 | "torsos-female-male": 61953, 260 | "torsos-male-female": 61954, 261 | "torsos": 61955, 262 | "trash": 61956, 263 | "trees": 61957, 264 | "trophy": 61958, 265 | "underline": 61959, 266 | "universal-access": 61960, 267 | "unlink": 61961, 268 | "unlock": 61962, 269 | "upload-cloud": 61963, 270 | "upload": 61964, 271 | "usb": 61965, 272 | "video": 61966, 273 | "volume-none": 61967, 274 | "volume-strike": 61968, 275 | "volume": 61969, 276 | "web": 61970, 277 | "wheelchair": 61971, 278 | "widget": 61972, 279 | "wrench": 61973, 280 | "x-circle": 61974, 281 | "x": 61975, 282 | "yen": 61976, 283 | "zoom-in": 61977, 284 | "zoom-out": 61978 285 | } --------------------------------------------------------------------------------