0

Ich implementiere native Schnittstelle für den Zugriff auf iOS-Funktion.Reagiere natives iOS natives Modul undefiniert?

//SPRNUtilities.h at /ios/project_name 
#import <React/RCTBridgeModule.h> 
@interface SPRNUtilities : NSObject <RCTBridgeModule> 
@end 

//SPRNUtilities.m 
#import "SPRNUtilities.h" 
@implementation SPRNUtilities 
RCT_EXPORT_MODULE(); 
RCT_EXPORT_METHOD(pushNotificationEnabled:(RCTResponseSenderBlock)callback) 
{ 
    id object = nil; 
    if ([[UIApplication sharedApplication] isRegisteredForRemoteNotifications]){ 
    object = @(YES); 
    }else{ 
    object = [NSNull null]; 
    } 
    callback(@[object]); 
} 

Wenn ich es Zugriff auf JS-Code,

import { Platform, StyleSheet, NativeModules} from 'react-native'; 
export default class SPReactNativeUtils{ 
    static pushNotificationEnabled(callback){ 
     if (Platform.OS === 'ios'){ 
      const SPNativeiOS = NativeModules.SPRNUtilities; 
      SPNativeiOS.pushNotificationEnabled((enabled) => { 
       callback(enabled); 
      }); 
     }else{ 
      callback(false); 
     } 
    } 
} 

aber bekam die Nachricht fehlschlagen:

enter image description here

Könnte mir jemand helfen, warum ich dieses Problem habe? Vielen Dank !!!

Antwort

0

Gemäß der oben angegebenen Informationen, bitte versuchen Sie es Debuggen mit folgenden Optionen:

  1. In SPReactNativeUtils.js Linie Nr. 4 setzten ein Konsolenprotokoll zu überprüfen, ob Rückruf
  2. Prüfung definiert, wenn SPNativeiOS definiert ist - die meisten wie diese werden Sie ein umfassenderes Bild, wenn nicht, dann 3
  3. zu Option gehen, um ein NSLog für den Wert eines in dem nativen Code Put . Rückruf b. Objekt in verschiedenen Stadien und schließlich geprüft, ob Wert zugewiesen bekommen
  4. Achten Sie darauf, das Objekt laufen yarn run ios (einen neuen Build erstellen, wenn Sie den nativen Code ändern)

Hoffnung, das hilft. Wenn nicht, bitte Ausgänge zu den obigen Optionen zur Verfügung stellen, damit wir mehr debuggen können :)

+0

1. Ich habe versucht und print Log "undefined", das ist das Problem, was ich frage. 2. Das ist der Grund, warum es den Fehler druckt. 3. xcode-Modul wurde noch nie aufgerufen. 4. Ich habe auch versucht "npm start", "react-native run-ios" auch. aber immer noch nicht funktionieren –

+0

Können Sie zeigen, wo ist 'static pushNotificationEnabled (Callback) {' Aufruf von? Bitte vergewissern Sie sich, dass Sie einen gültigen Rückruf an die Funktion übergeben. –

Verwandte Themen