使用本机模块将反应原生应用程序的帖子分享到第三方应用程序Instagram



如果它是重复的,请原谅。我正在开发一个应用程序,该应用程序使用react-native在第三方Instagram应用程序中共享其帖子。我到处搜索,发现没有这样的功能可用于 react-native,但它在本机 ios 和本机 android 中可用。我正在尝试在本机ios(objective-c(中实现,并为此找到了很多代码,但我有点困惑,无法开发我的功能。谁能在这里一步一步地解释一下?我已经通过执行以下代码将本机ios文件与反应本机链接

.h 文件

#ifndef Instashare_h
#define Instashare_h
#import "React/RCTBridgeModule.h"
@interface Instashare : NSObject <RCTBridgeModule>
@end
#endif /* Instashare_h */

.m 文件

#import "Instashare.h"=
#import "React/RCTLog.h"
@implementation Instashare
// This RCT (React) "macro" exposes the current module to JavaScript
RCT_EXPORT_MODULE();
// We must explicitly expose methods otherwise JavaScript can't access anything
RCT_EXPORT_METHOD(get)
{
   NSLog(@"explanation code here");
}
@end

反应本机.js文件

var InstagramShare = NativeModules.Instashare;
export default class ShareComponents extends PureComponent {
  _handleInsta = () => {
     InstagramShare.get();
  }
  render{
     return(
        <TouchableOpacity
            onPress={() => this._handleInsta()}
        >
          <Text>Instagram</Text>
        </TouchableOpacity>
     );
  }
}

原生模块只是一个实现RCTBridgeModule协议的 Objective-C 类。如果您想知道,RCTReaCT的缩写。

// Instashare.h
#import <React/RCTBridgeModule.h>
@interface Instashare : NSObject <RCTBridgeModule>
@end

React Native 不会将 Instashare 的任何方法暴露给 JavaScript,除非明确告知。这是使用RCT_EXPORT_METHOD()宏完成的:

#import "Instashare.h"
#import <React/RCTLog.h>
@implementation Instashare
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(get:(NSString *)name location:(NSString *)location)
{
  NSLog(@"explanation code here");
}
@end

用法

import {NativeModules} from 'react-native';
var Instashare = NativeModules.Instashare;
Instashare.get();

相关内容

最新更新