Я более-менее новичок в реакции нативной; Я работаю над приложением, которое должно управлять финансовыми транзакциями (агентский перевод, оплата услуг и т. Д. c.). Задача приложения - иметь возможность выполнить код USSD и затем немедленно запустить вызов из собственного диспетчера вызовов телефона. Моя проблема - это сложность достижения этой цели. По сути, я не могу инициировать вызов сразу после запуска кода USSD.
Базовый проект создается с expo , но я понял, что следующие три библиотеки не могут работать на expo, что привело мне, чтобы извлечь мой проект командой expo eject (https: //docs.expo. io / expokit / eject /)
Я использую следующие библиотеки:
typeError: RNSenddIntent Android .sendOhoneCall не является функция. (В 'RNSendIntent Android .sendPhoneCall (phoneNumber, phoneAphoneOnly)', 'RNSendIntent Android .sendPhoneCall' не определено)
typeError: null не является объектом (оценка'_reactNative.NativeModule.RNImmediatePhoneCall.immediatePhoneCall ')
typeError : null не является объектом (оценка'_reactNative.NativeModules.Device.DialNumber ')
С тремя вышеупомянутыми библиотеками у меня такая же ошибка [введите описание изображения здесь] [2]
Проблема с этой библиотекой в том, что она не сразу запускает код USSD и не принимает символ # в качестве параметра
вот код моих разных страниц
include ':react-native-ussd-dial'
project(':react-native-ussd-dial').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-ussd-dial/android')
include ':react-native-immediate-phone-call', ':app'
project(':react-native-immediate-phone-call').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-immediate-phone-call/android')
include ':RNSendIntentModule', ':app'
project(':RNSendIntentModule').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-send-intent/android')
dependencies {
implementation project(':react-native-send-intent')
implementation project(':react-native-ussd-dial')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.facebook.react:react-native:+" // From node_modules
addUnimodulesDependencies()
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
// here
implementation project(':react-native-immediate-phone-call')
compile project(':react-native-ussd-dial')
compile project(':RNSendIntentModule')
}
-MainApplication.jaava
@Override
protected List < ReactPackage > getPackages() {
List < ReactPackage > packages = new PackageList(this).getPackages();
packages.add(
new ModuleRegistryAdapter(mModuleRegistryProvider),
new RNSendIntentPackage(),
new RNUssdDialPackage(),
new RNImmediatePhoneCallPackage());
//here
new RNImmediatePhoneCallPackage();
new RNUssdDialPackage();
new RNSendIntentPackage();
return packages;
}
< uses - permission android: name = "android.permission.CALL_PHONE" / >