mirror of
				https://gitcode.com/gh_mirrors/re/react-native-pushy.git
				synced 2025-10-31 21:33:12 +08:00 
			
		
		
		
	support to Expo (#486)
* support to Expo * update * update * update --------- Co-authored-by: Steven <steven@Stevens-MacBook-Pro.local>
This commit is contained in:
		| @@ -22,14 +22,42 @@ def supportsNamespace() { | ||||
|   return major >= 8 | ||||
| } | ||||
|  | ||||
| def isExpoProject() { | ||||
|     def hasExpoModulesCore = rootProject.subprojects.any { it.name == 'expo-modules-core' } | ||||
|  | ||||
|     def packageJsonFile = new File(rootProject.projectDir.parentFile, 'package.json') | ||||
|     def hasExpoDependency = false | ||||
|     if (packageJsonFile.exists()) { | ||||
|         def packageJson = new groovy.json.JsonSlurper().parseText(packageJsonFile.text) | ||||
|         hasExpoDependency = (packageJson.dependencies?.expo != null) ||  | ||||
|                            (packageJson.devDependencies?.expo != null) | ||||
|     } | ||||
|      | ||||
|     return hasExpoModulesCore || hasExpoDependency | ||||
| } | ||||
|  | ||||
| def expoProject = isExpoProject() | ||||
|  | ||||
| apply plugin: 'com.android.library' | ||||
| if (isNewArchitectureEnabled()) { | ||||
|     apply plugin: 'com.facebook.react' | ||||
| } | ||||
|  | ||||
| if (expoProject) { | ||||
|     group = 'expo.modules.pushy' | ||||
|     version = '1.0.0' | ||||
|  | ||||
|     def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle") | ||||
|     apply from: expoModulesCorePlugin | ||||
|     applyKotlinExpoModulesCorePlugin() | ||||
|     useCoreDependencies() | ||||
|     useExpoPublishing() | ||||
| } else { | ||||
|     group = 'cn.reactnative.modules.update' | ||||
|     version = '1.0.0' | ||||
| } | ||||
|  | ||||
| android { | ||||
|  | ||||
|     if (supportsNamespace()) { | ||||
|         namespace "cn.reactnative.modules.update" | ||||
|  | ||||
| @@ -41,7 +69,6 @@ android { | ||||
|     } | ||||
|     compileSdkVersion safeExtGet('compileSdkVersion', 28) | ||||
|     buildToolsVersion safeExtGet('buildToolsVersion', '28.0.3') | ||||
|  | ||||
|     defaultConfig { | ||||
|         minSdkVersion safeExtGet('minSdkVersion', 16) | ||||
|         targetSdkVersion safeExtGet('targetSdkVersion', 27) | ||||
| @@ -50,6 +77,7 @@ android { | ||||
|         consumerProguardFiles "proguard.pro" | ||||
|         buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() | ||||
|     } | ||||
|      | ||||
|     sourceSets { | ||||
|         main { | ||||
|             // let gradle pack the shared library into apk | ||||
| @@ -59,6 +87,12 @@ android { | ||||
|             } else { | ||||
|                 java.srcDirs += ['src/oldarch'] | ||||
|             } | ||||
|              | ||||
|             if (expoProject) { | ||||
|                 java.srcDirs += ['java/expo/modules/pushy'] | ||||
|             } else { | ||||
|                 java.exclude 'expo/modules/pushy/**' | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -70,6 +104,10 @@ android { | ||||
|             resValue("string", "pushy_build_time", "0") | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     lintOptions { | ||||
|         abortOnError false | ||||
|     } | ||||
| } | ||||
|  | ||||
| repositories { | ||||
|   | ||||
| @@ -0,0 +1,13 @@ | ||||
| package cn.reactnative.modules.update; | ||||
|  | ||||
| import androidx.annotation.Nullable; | ||||
|  | ||||
| public interface ReactNativeHostHandler { | ||||
|     @Nullable | ||||
|     String getJSBundleFile(boolean useDeveloperSupport); | ||||
|      | ||||
|     @Nullable | ||||
|     String getBundleAssetName(boolean useDeveloperSupport); | ||||
|      | ||||
|     void onWillCreateReactInstance(boolean useDeveloperSupport); | ||||
| }  | ||||
| @@ -7,14 +7,11 @@ import android.content.pm.PackageManager; | ||||
| import android.os.Build; | ||||
| import android.os.Environment; | ||||
| import android.util.Log; | ||||
|  | ||||
| import com.facebook.react.ReactInstanceManager; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
| import java.util.concurrent.Executor; | ||||
| import java.util.concurrent.Executors; | ||||
|  | ||||
| import java.io.File; | ||||
|  | ||||
| public class UpdateContext { | ||||
|   | ||||
							
								
								
									
										10
									
								
								android/src/main/java/expo/modules/pushy/ExpoPushyModule.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								android/src/main/java/expo/modules/pushy/ExpoPushyModule.kt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| package expo.modules.pushy | ||||
|  | ||||
| import expo.modules.kotlin.modules.Module | ||||
| import expo.modules.kotlin.modules.ModuleDefinition | ||||
|  | ||||
| class ExpoPushyModule : Module() { | ||||
|   override fun definition() = ModuleDefinition { | ||||
|     Name("ExpoPushy") | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,27 @@ | ||||
| package expo.modules.pushy; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.util.Log; | ||||
| import androidx.annotation.Nullable; | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import cn.reactnative.modules.update.UpdateContext; | ||||
| import expo.modules.core.interfaces.Package; | ||||
| import expo.modules.core.interfaces.ReactNativeHostHandler; | ||||
|  | ||||
| public class ExpoPushyPackage  implements Package { | ||||
|     @Override | ||||
|     public List<ReactNativeHostHandler> createReactNativeHostHandlers(Context context) { | ||||
|         List<ReactNativeHostHandler> handlers = new ArrayList<>(); | ||||
|         handlers.add(new ReactNativeHostHandler() { | ||||
|             @Nullable | ||||
|             @Override | ||||
|             public String getJSBundleFile(boolean useDeveloperSupport) { | ||||
|                 return UpdateContext.getBundleUrl(context); | ||||
|             } | ||||
|         }); | ||||
|         return handlers; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 波仔糕
					波仔糕