React-native-onesignal: рдХреНрдпрд╛ launchURL рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдирд╡ре░ 2016  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: OneSignal/react-native-onesignal

рдирдорд╕реНрдХрд╛рд░!

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рдм рдХреБрдЫ рд╕реЗрдЯрдЕрдк рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рд╕реВрдЪрдирд╛рдПрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИрдВред
рдЬрдм рдореИрдВ рдпреВрдЖрд░рдПрд▓ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реВрдВ рдФрд░ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкрд░ рджрдмрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореЛрдмрд╛рдЗрд▓ рдРрдк рд▓реЙрдиреНрдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред

рд▓реЗрдХрд┐рди рдПрдХ рд╕рдВрдХреЗрдд рдЦрд╛рддрд╛ рдЬреЛ рд╕реВрдЪрдирд╛ рднреЗрдЬ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд░реЛрдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рдкреИрд░рд╛ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдпреВрдЖрд░рдПрд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрдм рдореЛрдмрд╛рдЗрд▓ рдХреЛ рдпрд╣ рд╕реВрдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рд╡рд╣ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ url рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдРрдкред

рдХреНрдпрд╛ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдмрдВрдж рдХрд░ рджреЗрдВ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдРрдк рдЦреЛрд▓реЗрдВ?
рдпрд╛ рдореИрдВ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?

рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@jkasten2

@ccstorch @avishayil рдРрдк рдореЗрдВ рд▓реЙрдиреНрдЪ рдпреВрдЖрд░рдПрд▓ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЛ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдиреА рд╣реЛрдВрдЧреАред рдПрдХ рд▓реЙрдиреНрдЪ рдпреВрдЖрд░рдПрд▓ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдЖрдкрдХрд╛ рдХреНрд░реЛрдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рджреВрд╕рд░рд╛ рдЖрдкрдХреЗ рдореЛрдмрд╛рдЗрд▓ рдРрдк рдХреЗ рд▓рд┐рдПред

рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, @jkasten2 рдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

OneSignalHelper рдХреА displayWebView : рд╡рд┐рдзрд┐ рдХреЛ рдШреБрдорд╛рдирд╛ рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИред рдпрд╣ рдПрдХ _рдорд╣рд╛рди_ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ (рдЕрднреА рдХреЗ рд▓рд┐рдП)ред

я╕П рдРрд╕рд╛ рддрднреА рдХрд░реЗрдВ рдЬрдм рдЖрдк рдпреЛрд▓реЛ рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ я╕П

#import <RCTOneSignal/RCTOneSignal.h>
#import <objc/runtime.h>

<strong i="9">@implementation</strong> AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    // Don't do this unless in dire yolo situations
    SwizzleClassMethod(NSClassFromString(@"OneSignalHelper"), @selector(displayWebView:), [AppDelegate class], @selector(displayWebView:));

    NSString *oneSignalAPIID = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"ONE_SIGNAL_API_ID"];
    self.oneSignal = [[RCTOneSignal alloc] initWithLaunchOptions:launchOptions appId:oneSignalAPIID];

    return YES;
}

+ (void) displayWebView:(NSURL*)url {
    NSLog(@"This is dumb"); 
}

void SwizzleClassMethod(Class cOriginal, SEL orig, Class cNew, SEL new) {

    Method origMethod = class_getClassMethod(cOriginal, orig);
    Method newMethod = class_getClassMethod(cNew, new);

    cOriginal = object_getClass((id)cOriginal);
    cNew = object_getClass((id)cNew);

    if(class_addMethod(cOriginal, orig, method_getImplementation(newMethod), method_getTypeEncoding(newMethod))) {
        class_replaceMethod(cNew, new, method_getImplementation(origMethod), method_getTypeEncoding(origMethod));
    } else {
        method_exchangeImplementations(origMethod, newMethod);
    }
}

<strong i="10">@end</strong>
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

cfmitrah picture cfmitrah  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

carloscuesta picture carloscuesta  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

suupham2506 picture suupham2506  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Steffi3rd picture Steffi3rd  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

HristoEftimov picture HristoEftimov  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ