React Native for windows 调用C#脚本(Native Modules)

React Native for windows 调用C#脚本(Native Modules)

本编文章主要基于已经安装好了各种环境得操作篇,必备软件:VsCode,Visual studio
React Native for windows 官网
那么。直接上流程;

1:用管理员权限打开cmd,

输入cd F:\RnSdk\Demo

F:\RnSdk\Demo可以替换成任何你得任何文件夹,用于创建react-native项目,
然后输入

npx react-native init projectName

projectName可以替换成你想要得项目名(文件夹名称),等待安装完成

2:导航到这个新创建的目录

输入cd projectName

projectName可以替换成你想要得项目名(文件夹名称),和之前得projectName相同即可

3:安装Windows扩展
安装React Native for Windows软件包

npx react-native-windows-init
npx react-native-windows-init --language cpp
这两个指令都是都是默认安装C++项目

npx react-native-windows-init --language cs
这个是安装C#项目,(笔者主要使用C#,故安装的这个)

4:打开项目
进入项目文件夹,能看到一个windows的文件夹,双击进去,双击后缀为.sln的文件,即可打开项目,打开项目后,在左上角文件选项按钮下有个Debug,arm,把arm选成X64或者X86,在之前的cmd中输入

react-native start

然后即可运行测试,此刻程序主界面便进去了。这时候能看到 welcome to React Native 了,如果有什么问题可留言。

5:编写C#代码
在vs项目中新建一个脚本FancyMath.cs,代码如下:
新建的脚本
然后,注册模块:找到项目里面名为ReactPackageProvider的脚本,如果没有就创建一个,在CreatePackage方法里面添加 packageBuilder.AddAttributedModules();
如图所示
在这里插入图片描述
然后检查项目 app.xaml.cs下有没有缺少这两句代码
在这里插入图片描述
检查无误后,那么可以开始编写js代码,用于调用C#代码了。
6:编写js代码
用vscode打开React Native 项目,找到App.js脚本,略做修改

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 *
 * @format
 * @flow strict-local
 */

import React from 'react';
import type {Node} from 'react';
import {
  SafeAreaView,
  ScrollView,
  StatusBar,
  StyleSheet,
  Text,
  Button,
  useColorScheme,
  View,
} from 'react-native';

import {
  Colors,
  DebugInstructions,
  Header,
  LearnMoreLinks,
  ReloadInstructions,
} from 'react-native/Libraries/NewAppScreen';

import { NativeModules, NativeEventEmitter } from 'react-native';
const FancyMathEventEmitter = new NativeEventEmitter(NativeModules.FancyMath);
const onButtonPress = () => {
  alert('调用C#脚本,FancyMath.Pi:'+NativeModules.FancyMath.Pi+'  FancyMath.E:'+NativeModules.FancyMath.E);
 NativeModules.FancyMath.add(NativeModules.FancyMath.Pi, NativeModules.FancyMath.E,function (result) {
    alert('Pi:'+NativeModules.FancyMath.Pi+'  E:'+NativeModules.FancyMath.E+'     '+result);
  });
};



const App: () => Node = () => {
  const isDarkMode = useColorScheme() === 'dark';

  const backgroundStyle = {
    backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
  };

  return (
    <SafeAreaView style={backgroundStyle}>
      <StatusBar barStyle={isDarkMode ? 'light-content' : 'dark-content'} />
      <ScrollView
        contentInsetAdjustmentBehavior="automatic"
        style={backgroundStyle}>
        <Header />
        <View
          style={{
            backgroundColor: isDarkMode ? Colors.black : Colors.white,
          }}>
          <Button title="我是按钮"
            onPress={onButtonPress}
            color="#841584">
          </Button>
          <LearnMoreLinks />
        </View>
      </ScrollView>
    </SafeAreaView>
  );
};



export default App;

然后切换到Visual studio项目,点击运行即可,就能看到
在这里插入图片描述

点击 我是按钮,就能成功打印出C#的变量值,
在这里插入图片描述

在此,调用C#成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值