gpt4 book ai didi

javascript - 如何在 native android 应用程序中实现 Headless JS?

转载 作者:数据小太阳 更新时间:2023-10-29 05:35:05 24 4
gpt4 key购买 nike

我需要在我的 React Native Android 应用程序中实现 Headless JS,但我遇到了以下问题:

enter image description here

这是我的代码:

index.android.js :

import React, { Component } from 'react';
import {AppRegistry} from 'react-native';
import SomeTaskName from './SomeTaskName'
AppRegistry.registerComponent('SomeTaskName', () => SomeTaskName);

SomeTaskName.js

module.exports = async (taskData) => {
alert('test');
}

MyTaskService.java

import android.content.Intent;
import android.os.Bundle;
import com.facebook.react.HeadlessJsTaskService;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.jstasks.HeadlessJsTaskConfig;
public class MyTaskService extends HeadlessJsTaskService {
@Override
protected HeadlessJsTaskConfig getTaskConfig(Intent intent) {
Bundle extras = intent.getExtras();
if (extras != null) {
return new HeadlessJsTaskConfig(
"MyTaskService",
Arguments.fromBundle(extras),
5000);
}
return null;
}
}

并在AndroidManifest.xml中添加服务

<service android:name=".MyTaskService" android:enabled="true" android:label="MyTaskService" />

请,任何人帮助解决这个问题。

最佳答案

您必须注册一个 headless 任务。所以替换下面的代码:

AppRegistry.registerComponent('SomeTaskName', () => SomeTaskName);

与:

AppRegistry.registerHeadlessTask('SomeTaskName', () => SomeTaskName);

并且您需要从您的服务中调用任务,因此替换:

if (extras != null) {
return new HeadlessJsTaskConfig(
"MyTaskService",
Arguments.fromBundle(extras),
5000);
}
return null;

与:

// Following line just to be sure it does not silently fail
WritableMap data = extras != null ? Arguments.fromBundle(extras) : null;
return new HeadlessJsTaskConfig(
"SomeTaskName", // Use the registered headless Task here
data,
5000);

关于javascript - 如何在 native android 应用程序中实现 Headless JS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42999330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com