From 2dd823f5337a1301f4a1f10b5343947fb6aefaeb Mon Sep 17 00:00:00 2001 From: hupeng Date: Fri, 8 Mar 2019 12:38:25 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=BC=96=E8=AF=91][=E6=96=B0=E5=A2=9E]:?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=B3=BB=E7=BB=9F=E4=BF=A1=E6=81=AF,?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0product=E7=BC=96=E8=AF=91=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.js | 27 +++++++------- android/app/build.gradle | 14 ++++++-- .../java/com/screenad/MainApplication.java | 23 +++++++----- .../main/java/com/screenad/RNBuildConfig.java | 36 +++++++++++++++++++ .../com/screenad/RNBuildConfigPackage.java | 31 ++++++++++++++++ 5 files changed, 108 insertions(+), 23 deletions(-) create mode 100644 android/app/src/main/java/com/screenad/RNBuildConfig.java create mode 100644 android/app/src/main/java/com/screenad/RNBuildConfigPackage.java diff --git a/App.js b/App.js index f0d8da6..48f22e9 100644 --- a/App.js +++ b/App.js @@ -1,13 +1,16 @@ import React, { Component } from 'react'; - import { +import { + Platform, StyleSheet, Text, View, Image, ImageBackground, + NativeModules } from 'react-native'; + //引用插件 import Package from './package.json' import HttpUtils from './HttpUtils.js'; @@ -16,7 +19,9 @@ import DeviceInfo from "react-native-device-info"; import * as Animatable from 'react-native-animatable'; -contentItemDefault = { +var testMac = '11:AA:33:BB:44' + +var contentItemDefault = { type:0, subType:0, qrcode:[], @@ -30,17 +35,15 @@ contentItemDefault = { } } -baseInfoDefault = { +var baseInfoDefault = { imgUrlH:'', imgQrcodeWeapp:'', imgQrcodeWemp:'' } -curAdIndex = 0; - -testMac = '11:AA:33:BB:44' +var curAdIndex = 0; -errorMsg = { +var errorMsg = { ERR_MAC_GET:'MAC地址获取错误', ERR_DATA_GET:'数据获取错误' @@ -59,7 +62,7 @@ export default class MyPage extends Component { contentDisplayStatus:false, - syncMessage: "INIT" , + syncMessage: "Init" , errorMessage: 'Loading...', progress: { @@ -67,7 +70,7 @@ export default class MyPage extends Component { totalBytes:0 }, macAddress: '', - versionInfo:'UNKNOWN' + versionInfo:'Unknown' }; } @@ -127,7 +130,7 @@ codePushStatusDidChange(syncStatus) { } hbRequest() { - HttpUtils.post('https://mall.youlane.cn/api/wxDeviceScreenAd/heartbeat?deviceId=' + HttpUtils.post(NativeModules.BuildConfig.apiHost + 'api/wxDeviceScreenAd/heartbeat?deviceId=' +encodeURIComponent(this.state.macAddress), {version:this.state.versionInfo}) .then(result => { @@ -137,7 +140,7 @@ codePushStatusDidChange(syncStatus) { } getAdDataList() { - HttpUtils.get('https://mall.youlane.cn/api/wxDeviceScreenAd/list?deviceId='+encodeURIComponent(this.state.macAddress)+'&pageNum=1&pageSize=1000') + HttpUtils.get(NativeModules.BuildConfig.apiHost + 'api/wxDeviceScreenAd/list?deviceId='+encodeURIComponent(this.state.macAddress)+'&pageNum=1&pageSize=1000') .then(result => { if (result.code != 200) { this.setState({errorMessage : result.message}); @@ -159,7 +162,7 @@ codePushStatusDidChange(syncStatus) { } getBaseInfo() { - HttpUtils.get('https://mall.youlane.cn/api/wxDeviceScreenAd/info?deviceId='+encodeURIComponent(this.state.macAddress)) + HttpUtils.get(NativeModules.BuildConfig.apiHost + 'api/wxDeviceScreenAd/info?deviceId='+encodeURIComponent(this.state.macAddress)) .then(result => { if (result.code != 200) { this.setState({errorMessage : result.message}); diff --git a/android/app/build.gradle b/android/app/build.gradle index 304c8e2..2b56ef0 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -131,16 +131,24 @@ android { buildTypes { debug { buildConfigField "String", "API_HOST", "\"https://mall.youlane.cn/\"" - buildConfigField "String", "CODEPUSH_HOST", "\"http://202.165.179.86:3333/\"" + buildConfigField "String", "CODEPUSH_HOST", "\"http://mall.youlane.cn:3333/\"" buildConfigField "String", "CODEPUSH_KEY", "\"8snO1yoHlvhEtBjr02zTr3g1comw4ksvOXqog\"" } release { - buildConfigField "String", "API_HOST", "\"https://admin.malls.iformall.com/\"" - buildConfigField "String", "CODEPUSH_HOST", "\"http://202.165.179.86:3333/\"" + buildConfigField "String", "API_HOST", "\"https://admintest.malls.iformall.com/\"" + buildConfigField "String", "CODEPUSH_HOST", "\"http://mall.youlane.cn:3333/\"" buildConfigField "String", "CODEPUSH_KEY", "\"9rYZYySFD0ryN5wCD9YmjJkT55Kf4ksvOXqog\"" minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } + product.initWith(release) + product { + buildConfigField "String", "API_HOST", "\"https://admin.malls.iformall.com/\"" + buildConfigField "String", "CODEPUSH_HOST", "\"http://admin.malls.iformall.com:3333/\"" + buildConfigField "String", "CODEPUSH_KEY", "\"9rYZYySFD0ryN5wCD9YmjJkT55Kf4ksvOXqog\"" + matchingFallbacks = ['product', 'release'] + } + } // applicationVariants are e.g. debug, release applicationVariants.all { variant -> diff --git a/android/app/src/main/java/com/screenad/MainApplication.java b/android/app/src/main/java/com/screenad/MainApplication.java index 9dcc76c..2664dc1 100644 --- a/android/app/src/main/java/com/screenad/MainApplication.java +++ b/android/app/src/main/java/com/screenad/MainApplication.java @@ -4,6 +4,9 @@ import android.app.Application; import com.facebook.react.ReactApplication; import org.reactnative.camera.RNCameraPackage; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.learnium.RNDeviceInfo.RNDeviceInfo; import com.microsoft.codepush.react.CodePush; import com.facebook.react.ReactNativeHost; @@ -14,6 +17,8 @@ import com.facebook.soloader.SoLoader; import java.util.Arrays; import java.util.List; + + public class MainApplication extends Application implements ReactApplication { private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { @@ -31,14 +36,16 @@ public class MainApplication extends Application implements ReactApplication { @Override protected List getPackages() { return Arrays.asList( - new MainReactPackage(), - new RNCameraPackage(), - new RNDeviceInfo(), new CodePush( - BuildConfig.CODEPUSH_KEY, - getApplicationContext(), - BuildConfig.DEBUG, - BuildConfig.CODEPUSH_HOST - ) + new MainReactPackage(), + new RNCameraPackage(), + new RNBuildConfigPackage(), + new RNDeviceInfo(), + new CodePush( + BuildConfig.CODEPUSH_KEY, + getApplicationContext(), + BuildConfig.DEBUG, + BuildConfig.CODEPUSH_HOST + ) ); } diff --git a/android/app/src/main/java/com/screenad/RNBuildConfig.java b/android/app/src/main/java/com/screenad/RNBuildConfig.java new file mode 100644 index 0000000..ee2981f --- /dev/null +++ b/android/app/src/main/java/com/screenad/RNBuildConfig.java @@ -0,0 +1,36 @@ +package com.screenad; + +import android.content.pm.PackageManager; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; + +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Nullable; + +public class RNBuildConfig extends ReactContextBaseJavaModule { + + public RNBuildConfig(ReactApplicationContext reactContext) { + super(reactContext); + } + + @Override + public String getName() { + return "BuildConfig"; + } + + @Override + public @Nullable + Map getConstants() { + HashMap constants = new HashMap(); + constants.put("apiHost", BuildConfig.API_HOST); + constants.put("buildType", BuildConfig.BUILD_TYPE); + constants.put("versionCode", BuildConfig.VERSION_CODE); + constants.put("versionName", BuildConfig.VERSION_NAME); + + return constants; + } +} \ No newline at end of file diff --git a/android/app/src/main/java/com/screenad/RNBuildConfigPackage.java b/android/app/src/main/java/com/screenad/RNBuildConfigPackage.java new file mode 100644 index 0000000..82a0699 --- /dev/null +++ b/android/app/src/main/java/com/screenad/RNBuildConfigPackage.java @@ -0,0 +1,31 @@ +package com.screenad; + +import com.facebook.react.ReactPackage; +import com.facebook.react.bridge.JavaScriptModule; +import com.facebook.react.bridge.NativeModule; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.uimanager.ViewManager; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class RNBuildConfigPackage implements ReactPackage { + + @Override + public List createViewManagers(ReactApplicationContext reactContext) { + return Collections.emptyList(); + } + @Override + public List createNativeModules( + ReactApplicationContext reactContext) { + List modules = new ArrayList<>(); + modules.add(new RNBuildConfig(reactContext)); + return modules; + } + // Deprecated RN 0.47 + public List> createJSModules() { + return Collections.emptyList(); + } + +}