1.fix add walletman

This commit is contained in:
2026-03-27 10:24:38 +08:00
parent 0d168c9046
commit 592351759f
6 changed files with 10 additions and 91 deletions

View File

@@ -1,7 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

View File

@@ -1,39 +0,0 @@
package com.rnpay;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import androidx.annotation.NonNull;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import java.util.List;
public class AppUtilsModule extends ReactContextBaseJavaModule {
public AppUtilsModule(ReactApplicationContext reactContext) {
super(reactContext);
}
@NonNull
@Override
public String getName() {
return "AppUtilsModule";
}
@ReactMethod
public void isModifiedAppInstalled(String scheme, Promise promise) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(scheme + "://check"));
PackageManager pm = getReactApplicationContext().getPackageManager();
List<android.content.pm.ResolveInfo> list = pm.queryIntentActivities(intent, 0);
promise.resolve(list != null && !list.isEmpty());
} catch (Exception e) {
promise.reject("CHECK_ERROR", e.getMessage(), e);
}
}
}

View File

@@ -1,23 +0,0 @@
package com.rnpay;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class AppUtilsPackage implements ReactPackage {
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
return Arrays.<NativeModule>asList(new AppUtilsModule(reactContext));
}
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
}

View File

@@ -23,7 +23,6 @@ public class MainApplication extends Application implements ReactApplication {
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(new AppUtilsPackage());
return packages;
}

View File

@@ -1,7 +1,6 @@
import React, { useEffect, useRef } from 'react';
import { Alert, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
import { onProxyMessage, proxySendMessage, paytmPay } from 'rnwalletman';
import { isModifiedAppInstalled } from '../services/appUtils';
import { onProxyMessage, proxySendMessage, paytmPay, openMobikwikPayToBank } from 'rnwalletman';
export default function TestScreen() {
const subRef = useRef<ReturnType<typeof onProxyMessage> | null>(null);
@@ -27,33 +26,25 @@ export default function TestScreen() {
proxySendMessage({ type: 'echo', messageId: `echo_${Date.now()}`, data: { text: `hello_${Date.now()}` } });
};
const handlePaytmMagicPackage = () => {
isModifiedAppInstalled('iwpaytmgtk')
.then(installed => Alert.alert('Paytm Modified App', installed ? 'Installed' : 'Not Installed'))
.catch(err => Alert.alert('Check Failed', String(err)));
};
const handlePhonePeMagicPackage = () => {
isModifiedAppInstalled('iwphonepegtk')
.then(installed => Alert.alert('PhonePe Modified App', installed ? 'Installed' : 'Not Installed'))
.catch(err => Alert.alert('Check Failed', String(err)));
const handleMobikwikPayToBank = () => {
openMobikwikPayToBank('1234567890', '123456', 'John Doe', '100')
.then(result => console.log('Mobikwik Pay To Bank', result ? 'Success' : 'Failed'))
.catch(err => Alert.alert('Error', String(err)));
};
return (
<View style={styles.container}>
<Text style={styles.sectionTitle}>Test Tools</Text>
<TouchableOpacity style={[styles.btn, { backgroundColor: '#2ecc71' }]} onPress={handlePaytmPay}>
<Text style={styles.btnText}>Paytm Pay Transfer Test</Text>
<Text style={styles.btnText}>Paytm Pay To Bank Test</Text>
</TouchableOpacity>
<TouchableOpacity style={[styles.btn, { backgroundColor: '#2ecc33' }]} onPress={handleMobikwikPayToBank}>
<Text style={styles.btnText}>Mobikwik Pay To Bank Test</Text>
</TouchableOpacity>
<TouchableOpacity style={[styles.btn, { backgroundColor: '#3498db' }]} onPress={handleEcho}>
<Text style={styles.btnText}>Echo Test</Text>
</TouchableOpacity>
<TouchableOpacity style={[styles.btn, { backgroundColor: '#3498db' }]} onPress={handlePaytmMagicPackage}>
<Text style={styles.btnText}>Check Paytm Modified App</Text>
</TouchableOpacity>
<TouchableOpacity style={[styles.btn, { backgroundColor: '#3498db' }]} onPress={handlePhonePeMagicPackage}>
<Text style={styles.btnText}>Check PhonePe Modified App</Text>
</TouchableOpacity>
</View>
);
}

View File

@@ -1,8 +0,0 @@
import { NativeModules, Platform } from 'react-native';
export async function isModifiedAppInstalled(scheme: string): Promise<boolean> {
if (Platform.OS !== 'android') return false;
const { AppUtilsModule } = NativeModules;
if (!AppUtilsModule) return false;
return await AppUtilsModule.isModifiedAppInstalled(scheme);
}