如何从IOS中的React-Native App打开外部应用程序?

时间:2017-11-07 08:39:17

标签: javascript ios react-native

我试图打开例如来自我自己的React-Native App的What's App。我已经在Android中使用react-native-send-intent(SendIntentAndroid)来做到这一点,但它只适用于Android。我想在IOS中做同样的事情。链接对我不起作用,我不知道为什么。

2 个答案:

答案 0 :(得分:1)

最后,在IOS中是Linking.openUR(“whatsapp:// app”)APP这个词就是我想要的。

答案 1 :(得分:0)

如果您想要将应用中的某些内容与其他应用分享,那么您可以通过 Share 本地模块进行分享。 该模块的文档可用here

你是否想打开其他应用程序,如whatsapp,gmail或邮件应用程序等,然后你可以通过在IOS中实现 native-module 来实现这一目标。

#import "RCTBridgeModule.h"

#ifndef SampleNativeModule_h
#define SampleNativeModule_h
#endif /* SampleNativeModule_h */

@interface SampleNativeModule_h : NSObject <RCTBridgeModule>

@end

上述文件为 SampleNativeModule.h

#import "SampleNativeModule.h"
#import "RCTLog.h"

@import UIKit;
@implementation SampleNativeModule


RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(openGmail)
{
  NSURL* mailURL = [NSURL URLWithString:@"message://"];
  NSURL* gmailURL = [NSURL URLWithString:@"googlegmail://"];
  NSURL* appStoreURL = [NSURL URLWithString:@"itms://itunes.apple.com/us/app/googlegmail"];

  if([[UIApplication sharedApplication] canOpenURL:gmailURL]){
    [[UIApplication sharedApplication] openURL:gmailURL];
  }else if ([[UIApplication sharedApplication] canOpenURL:mailURL]) {
    [[UIApplication sharedApplication] openURL:mailURL];
  }else{
    [[UIApplication sharedApplication] openURL:appStoreURL];
  }
}

@end

以上文件是SampleNativeModule.m

是本机模块文件,您可以将其作为

import {NativeModules} from 'react-native'
const SampleNativeModule = NativeModules.SampleNativeModule;
//    ........

SampleNativeModule.openGmail();

上面我实现了在IOS中打开gmail应用程序的方法,但你可以通过将URL传递给你的本机模块并打开相应的应用程序来为whatsapp和其他应用程序做。