有兴趣在react-local中实现直接本机到javascript的调用。但没有找到任何指南。
请提供一些在react native中创建和注册javascript本机模块的示例。
已经发现来自官方本机模块android留档的代码有一个名为createJSModules的方法,它返回JavaScriptModule类的列表。
class AnExampleReactPackage implements ReactPackage {
@Override
public List<Class<? extends JavaScriptModule>> createJSModules() {
return Collections.emptyList();
}
...
}
Javadoc for com。脸谱网。反应桥JavaScriptModule说:
/**
* Interface denoting that a class is the interface to a module with the same name in JS. Calling
* functions on this interface will result in corresponding methods in JS being called.
* ...
*/
@DoNotStrip
public interface JavaScriptModule {
}
我能够创建接口并将其类传递给createJSModules,但不知道如何从js代码中注册适当的javascript模块。
我不确定这是否可能,但您为什么要这样做?使用NativeAppEventEmitter/DeviceEventEmitter并将其作为您将在JS端收听的事件发送。
最后,在查看了reactjs源代码之后,我想出了解决方案,您需要:
>
在react上下文初始化之后,您可以通过以下方式获取并调用:
ActionsModule jsModule=上下文。getJSModule(ActionsModule.class);JS模块。呼叫动作(“问候”、“你好”);
这将异步调用您注册的js模块方法。
// AppPackage.java
public class AppPackage implements ReactPackage {
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
@Override
public List<Class<? extends JavaScriptModule>> createJSModules() {
return Arrays.<Class<? extends JavaScriptModule>>asList(
ActionsModule.class
);
}
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
}
// ActionsModule.java
public interface ActionsModule extends JavaScriptModule {
void callAction(String type, String value);
}
// MyReactActivity.java
public class MyReactActivity extends ReactActivity implements ReactInstanceManager.ReactInstanceEventListener {
...
@Override
public void onReactContextInitialized(ReactContext context) {
Acthtml" target="_blank">ionsModule jsModule = context.getJSModule(ActionsModule.class);
jsModule.callAction("greet", "hello");
}
...
}
// ActionsModule.js
var ActionsModule = {
callAction(type, value) {
console.log("callAction => " + type + ":" + value);
},
}
module.exports = ActionsModule;
// index.android.js
import {
AppRegistry
} from 'react-native';
import App from './components/App';
// js module registration
var BatchedBridge = require('BatchedBridge');
var ActionsModule = require('./ActionsModule');
BatchedBridge.registerCallableModule(
'ActionsModule',
ActionsModule
);
//~ js module registration
AppRegistry.registerComponent('MyApp', () => App);
UPD
我想问为什么指令不是MIPS ISA的一部分。相反,他们实际上使其成为汇编程序员的伪指令。从硬件实现的角度来看,我只是无法识别和(这是MIPS ISA的一部分)之间的区别。 顺便说一下,《计算机组织与设计》一书说: 注意到冯·诺依曼关于“设备”简单性的警告,MIPS体系结构不包括分支,因为分支太复杂,要么会延长时钟周期时间,要么每条指令需要额外的时钟周期,因此两条更快的指令更有用。 但我仍然不知道
实现指南 Pact workshop - 两小时从零起步掌握Pact 这些workshop可以带你从头到尾完成一个例子,涉及Pact支持的大部分概念。我们现在有Ruby、JVM和Android等workshop: Ruby JVM Android 支持的语言 Ruby JVM .NET Javascript Go Swift / Objective-C
我正在阅读https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#SSLContext关于SSLContext类。特别是,关于init方法: 他们说,如果tm参数为null,则“……将搜索已安装的安全提供程序,以查找TrustManagerFactory的最高优先级实现,并从中获得
本文向大家介绍Lua中模块以及实现方法指南,包括了Lua中模块以及实现方法指南的使用技巧和注意事项,需要的朋友参考一下 从使用的角度来看,一个模块就是一个程序库,可以通过Lua自身提供的require来加载。然后便得到一个全局变量,表示一个table。这个table就是像一个名字空间,其内容就是模块导出的所有东西,例如函数和常量。简单的说,Lua中的模块就是一个table,table中可以包括任何
RVM 是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境的管理和切换。 https://rvm.io/ 如果你打算学习 Ruby / Rails, RVM 是必不可少的工具之一。 这里所有的命令都是再用户权限下操作的,任何命令最好都不要用 sudo. RVM 安装 $ gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D
13.1.实例:指南针 理解系统服务,我们先从一个简单的样例——指南针(Compass)——开始。它可以通过传感器服务获得传感器的输出,旋转屏幕上的表盘(Rose)显示方位。传感器服务是个有代表性的系统服务,也不难懂。 在例子中,我们先创建一个Activity,由它来访问传感器服务,订阅来自传感器的输出。然后自定义一个表盘控件(Rose),使之可以依据传感器端得到的数据旋转一定的角度。