Skip to content

Instantly share code, notes, and snippets.

@vanGalilea
Created July 12, 2024 12:15
Show Gist options
  • Save vanGalilea/eddd936080ef5fd022b1390de5c991dc to your computer and use it in GitHub Desktop.
Save vanGalilea/eddd936080ef5fd022b1390de5c991dc to your computer and use it in GitHub Desktop.
Expo plugin to enable Google Pay
// add this plugin to you app.congi.js via plugins - https://docs.expo.dev/versions/latest/config/app/#plugins
//
// ...
// plugins: [
// ...
// "enableGooglePay.js"
// ]
const { AndroidConfig, withAndroidManifest } = require("@expo/config-plugins");
const { addMetaDataItemToMainApplication, getMainApplicationOrThrow } =
AndroidConfig.Manifest;
/**
* Adds the following to AndroidManifest.xml:
*
* <application>
* ...
* <meta-data
* android:name="com.google.android.gms.wallet.api.enabled"
* android:value="true|false" />
* </application>
*/
function setGooglePayMetaData(modResults) {
const GOOGLE_PAY_META_NAME = "com.google.android.gms.wallet.api.enabled";
const mainApplication = getMainApplicationOrThrow(modResults);
addMetaDataItemToMainApplication(
mainApplication,
GOOGLE_PAY_META_NAME,
"true",
);
return modResults;
}
function withGooglePayAndroid(expoConfig) {
return withAndroidManifest(expoConfig, (config) => {
config.modResults = setGooglePayMetaData(config.modResults);
return config;
});
}
module.exports = function withGooglePay(config, props) {
config = withGooglePayAndroid(config, props);
return config;
};
@melv-n
Copy link

melv-n commented Aug 14, 2024

The props passed on line 45 don’t do anything and can be omitted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment