有没有人成功实现了反应原生无头 js



https://facebook.github.io/react-native/releases/next/docs/headless-js-android.html#headless-js

我似乎找不到正确的方法

我正在运行反应原生 0.40

我实现了HeadlessJsTaskService来执行一些反应本机代码。

对我来说,ReactExecutorService只是默默地失败了,因为我在打电话时没有提供任何额外startService(new Intent(this, MyTaskService.class));。以下代码修复了此问题:

@Override
@Nullable
protected HeadlessJsTaskConfig getTaskConfig(Intent intent) {
    Bundle extras = intent.getExtras();
    WritableMap data = extras != null ? Arguments.fromBundle(extras) : null;
    return new HeadlessJsTaskConfig(
            "FeatureExecutor",
            data,
            5000);
}

我还有一个现有的应用程序类,它没有实现ReactApplication.我必须添加一些代码才能使HeadlessJsTaskService工作:

private final ReactNativeHost reactNativeHost = new ReactNativeHost(this) {
    @Override
    public boolean getUseDeveloperSupport() {
        return BuildConfig.DEBUG;
    }
    @Override
    protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
                // Insert your packages, e.g.
                new MainReactPackage()
        );
    }
};
@Override
public ReactNativeHost getReactNativeHost() {
    return reactNativeHost;
}

您还必须将自定义服务添加到清单中。例如:

<service android:name=".MyTaskService"/>

请提供有关您的问题的其他信息,以防上述解决方案不起作用。

最新更新