admin管理员组文章数量:1336632
I need implement Headless JS in my React Native Android Application, but I got following issue :
Here is My Code :
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 .facebook.react.HeadlessJsTaskService;
import .facebook.react.bridge.Arguments;
import .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;
}
}
and add service in AndroidManifest.xml
<service android:name=".MyTaskService" android:enabled="true" android:label="MyTaskService" />
Please , Anyone help to fix this issue.
I need implement Headless JS in my React Native Android Application, but I got following issue :
Here is My Code :
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 .facebook.react.HeadlessJsTaskService;
import .facebook.react.bridge.Arguments;
import .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;
}
}
and add service in AndroidManifest.xml
<service android:name=".MyTaskService" android:enabled="true" android:label="MyTaskService" />
Please , Anyone help to fix this issue.
Share Improve this question asked Mar 24, 2017 at 12:18 Saravana KumarSaravana Kumar 3,3967 gold badges28 silver badges44 bronze badges 2- Did this actually give out an alert? – Sarah cartenz Commented Jan 22, 2018 at 15:12
- could you make it work? – user12396958 Commented Jan 22, 2020 at 10:58
1 Answer
Reset to default 1You have to register a headless task. So replace the following code:
AppRegistry.registerComponent('SomeTaskName', () => SomeTaskName);
with:
AppRegistry.registerHeadlessTask('SomeTaskName', () => SomeTaskName);
And you need to call the task from your service, so replace:
if (extras != null) {
return new HeadlessJsTaskConfig(
"MyTaskService",
Arguments.fromBundle(extras),
5000);
}
return null;
with:
// 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);
本文标签: javascriptHow to implement Headless JS in react native android applicationStack Overflow
版权声明:本文标题:javascript - How to implement Headless JS in react native android application? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742414809a2470510.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论