Как добавить пользовательский модуль узла в приложениях expo / реакции-native? - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь создать собственный плагин для андроид-устройств вact-native, который может вызывать пользователя из самого интерфейса приложения, а не из нативного андроид-приложения и реализовывать плагин в expo-приложении, связав его в expo-приложении.Но когда я импортирую модуль в мой код JS и использую его, модуль становится пустым.

Это мой файл build.gradle

buildscript {
    repositories {
        jcenter()
        google()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
    }
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.1"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
    }
    lintOptions {
        abortOnError false
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.facebook.react:react-native:+'
}


Это мой файл package.json

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "expo": "^33.0.0",
    "react": "16.8.3",
    "react-dom": "^16.8.6",
    "react-native": "https://github.com/expo/react-native/archive/sdk-33.0.0.tar.gz",
    "react-native-react-native-call-app": "file:../react-native-call-app",
    "react-native-web": "^0.11.4"
  },
  "devDependencies": {
    "babel-preset-expo": "^5.1.1"
  },
  "private": true
}

// Код плагина для модуля приложения вызова https://github.com/NikhilOO7/react-native-call-app-module

// js код

import RNReactNativeCallApp from "react-native-react-native-call-app";
onPress = id => {
        console.log(id, RNReactNativeCallApp);
        RNReactNativeCallApp.callPerson(id);
    };

Ответы [ 2 ]

0 голосов
/ 20 июля 2019

Если вы не хотите отказываться от выставки и по-прежнему хотите добавить собственные встроенные модули, вот интересный способ сделать это.

Вам необходимо извлечь набор экспо, но выбратьиспользуйте набор expo, внесите некоторые изменения в файл app.json, а в babel.config.js добавьте плагин module-resolver.

С этими изменениями вы можете одновременно запускать приложение expo и ejected-expo изта же кодовая база.В извлеченной версии вы можете добавить собственные модули, а в неснятой версии вы можете просто высмеивать собственную функциональность.

Вот полный блог, за которым вы можете следить, он также предоставляет стартовый набор для вас.начать с.https://codersera.com/blog/running-expo-react-native-together/

0 голосов
/ 10 июня 2019

Вы можете добавлять собственные модули только после извлечения. https://docs.expo.io/versions/latest/expokit/eject/

...