Open wellespaiva-dev opened 10 months ago
are you running your app on a HUAWEI phone?
Hi @MinaSamir11, I have this problem when call this requestInAppCommentAppGallery.
I have "react-native-in-app-review": "^4.3.3"
See please my video: https://streamable.com/z5yg0t
Hello, I'm implementing the 'react-native-in-app-review' lib in my app, I did the android configuration following these steps but I'm getting the following error when calling the 'requestInAppCommentAppGallery' function: No activity found to handle intent act=com.huawei.appmarket.intent.action.guidecomment pkg=com.huawei.appmarket
How should I proceed?
Below are the implementation codes.
package.json:
{ "dependencies": { "@react-native-async-storage/async-storage": "^1.17.10", "@react-native-clipboard/clipboard": "^1.11.1", "@react-native-community/checkbox": "^0.5.15", "@react-native-community/picker": "^1.8.1", "@react-navigation/drawer": "^6.4.4", "@react-navigation/native": "^6.0.12", "@react-navigation/native-stack": "^6.8.0", "axios": "^0.27.2", "date-fns": "^2.29.3", "flipper-plugin-redux-debugger": "^2.0.1", "jail-monkey": "^2.8.0", "lodash": "^4.17.21", "lodash.memoize": "^4.1.2", "obfuscator-io-metro-plugin": "^2.1.2", "react": "18.0.0", "react-native": "0.69.7", "react-native-biometrics": "^3.0.1", "react-native-config": "^1.4.6", "react-native-confirmation-code-field": "^7.3.0", "react-native-currency-input": "^1.1.0", "react-native-device-info": "^10.2.0", "react-native-flipper": "^0.177.0", "react-native-fs": "^2.20.0", "react-native-gesture-handler": "^2.6.0", "react-native-in-app-review": "^4.3.3", "react-native-keychain": "^8.1.1", "react-native-kill-app": "^1.0.4", "react-native-linear-gradient": "^2.6.2", "react-native-paper": "^4.12.4", "react-native-permissions": "^3.6.1", "react-native-picker-select": "^8.0.4", "react-native-popover-view": "^5.1.7", "react-native-portalize": "^1.0.7", "react-native-reanimated": "^2.12.0", "react-native-safe-area-context": "^4.3.3", "react-native-screens": "^3.17.0", "react-native-screenshot-prevent": "^1.1.1", "react-native-share": "^8.2.0", "react-native-share-pdf": "^0.0.6", "react-native-snap-carousel": "^3.9.1", "react-native-splash-screen": "^3.3.0", "react-native-svg": "^13.1.0", "react-native-vector-icons": "^9.2.0", "react-native-webview": "^12.1.0", "react-navigation-backhandler": "^2.0.1", "react-redux": "^8.0.2", "redux": "^4.2.0", "redux-flipper": "^2.0.2", "redux-persist": "^6.0.0", "redux-saga": "^1.2.1", "reduxsauce": "^1.2.1", "rn-fetch-blob": "^0.12.0", "styled-components": "^5.3.5", "styled-theming": "^2.2.0", "yarn": "^1.22.19" }, }
Arquivo.js: `import InAppReview from 'react-native-in-app-review'; const AvaliablePod = () => { if (InAppReview.isAvailable()) { InAppReview.RequestInAppReview() .then((hasFlowFinishedSuccessfully) => { if (hasFlowFinishedSuccessfully) { InAppReview.requestInAppCommentAppGallery() .then((resultCode) => { console.log('in app comment app gallery', resultCode); }) .catch((error) => { console.log('AQUI', error); }); } .catch((error) => { console.log(error); }); } };
useEffect(() => { if (isFocused) { AvaliablePod(); }
}, []);`
android/build.gradle: `import org.apache.tools.ant.taskdefs.condition.Os
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { } repositories { google() mavenCentral() maven { url("https://developer.huawei.com/repo/") } } dependencies { classpath("com.android.tools.build:gradle:7.1.1") classpath("com.facebook.react:react-native-gradle-plugin") classpath("de.undercouch:gradle-download-task:5.0.1") classpath 'com.huawei.agconnect:agcp:1.6.0.300' } }
allprojects { repositories { maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url("$rootDir/../node_modules/react-native/android") } maven { // Android JSC is installed from npm url("$rootDir/../node_modules/jsc-android/dist") } maven { url("https://developer.huawei.com/repo/") } mavenCentral { // We don't want to fetch react-native from Maven Central as there are // older versions over there. content { excludeGroup "com.facebook.react" } } exclusiveContent { filter { includeGroup "com.facebook.react" } forRepository { maven { url "$rootDir/../node_modules/react-native/android" } } } google() maven { url 'https://www.jitpack.io' } } } `
android/app/build.gradle:
apply plugin: "com.android.application" apply from: project(":react-native-config").projectDir.getPath() + "/dotenv.gradle" apply plugin: "com.huawei.agconnect"
import com.android.build.OutputFile
/**
react-native bundle
with the correct arguments during the Android buildapply from: "../../node_modules/react-native/react.gradle"
line.project.ext.react = [ enableHermes: false, // clean and rebuild if changing ]
apply from: "../../node_modules/react-native/react.gradle"
/**
/**
/**
def jscFlavor = 'org.webkit:android-jsc-intl:+'
Date.toLocaleString
andString.localeCompare
that/**
/**
android { ndkVersion rootProject.ext.ndkVersion
}
dependencies { implementation fileTree(dir: "libs", include: ["*.jar"])
}
if (isNewArchitectureEnabled()) { // If new architecture is enabled, we let you build RN from source // Otherwise we fallback to a prebuilt .aar bundled in the NPM package. // This will be applied to all the imported transtitive dependency. configurations.all { resolutionStrategy.dependencySubstitution { substitute(module("com.facebook.react:react-native")) .using(project(":ReactAndroid")) .because("On New Architecture we're building React Native from source") substitute(module("com.facebook.react:hermes-engine")) .using(project(":ReactAndroid:hermes-engine")) .because("On New Architecture we're building Hermes from source") } } }
// Run this once to be able to run the application with BUCK // puts all compile dependencies into folder libs for BUCK to use task copyDownloadableDepsToLibs(type: Copy) { from configurations.implementation into 'libs' }
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
def isNewArchitectureEnabled() { // To opt-in for the New Architecture, you can either: // - Set
newArchEnabled
to true inside thegradle.properties
file // - Invoke gradle with-newArchEnabled=true
// - Set an environment variableORG_GRADLE_PROJECT_newArchEnabled=true
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" } `