我在React Native上構建應用程序,我想使用Android Service NotificationListenerService。爲了從服務中獲取數據,我需要一臺廣播接收器。我如何在React Native環境中設置BroadcastReceiver?在React Native上設置Android BroadcastReceiver
回答
我所做的是使用getJSModule
MyListener.java
public class MyListener extends NotificationListenerService {
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
if (sbn.getNotification().tickerText == null) {
return;
}
WritableNativeMap params = new WritableNativeMap();
params.putString("tickerText", sbn.getNotification().tickerText.toString());
params.putString("packageName", sbn.getPackageName());
MyModule.sendEvent("notificationReceived", params);
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {}
}
MyModule.java
public class MyModule extends ReactContextBaseJavaModule implements ActivityEventListener {
private static ReactApplicationContext reactContext;
public MyModule(ReactApplicationContext reactContext) {
super(reactContext);
this.reactContext = reactContext;
reactContext.addActivityEventListener(this);
}
public static void sendEvent(String event, WritableNativeMap params) {
reactContext
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit(event, params);
}
.......
}
檢查here有關發送事件的詳細信息emit
事件的方式。
它工作?看來我不能實例化一個WritableMap對象。 – user3348949
它實際上是'WritableNativeMap'。更新了我的答案。 – vinayr
我很新,反應原生,所以我不完全理解eventListeners。顯然,在模塊上,編譯器找不到'this.reactContext'。這部分是否正確? – user3348949
- 1. 特定設備上的React-Native run-android
- 2. 設置React Native子組件
- 3. React Native:從BroadcastReceiver運行javascript模塊
- 4. React-native-slider:無法將Thumb高度設置爲40以上(Android)
- 5. React-Native:設置Android模擬器,JAVA_HOME設置爲無效目錄
- 6. 在React Native中設置表格佈局
- 7. React Native Android&Genymotion
- 8. Android Studio/React Native
- 9. React native for android
- 10. React-Native Android PushNotifications
- 11. React Native - initialProperties Android
- 12. React Native android build
- 13. React Native中的react-native run-android
- 14. react-native run-android and react-native開始
- 15. 在Android上安裝React Native Fabric Digits
- 16. 在Android上使用React Native傳感器
- 17. 在React Native Android上的網格視圖
- 18. 在Android模擬器上運行react-native
- 19. 如何在Android的React Native中設置陰影?
- 20. React Native Android - 如何在ToolBarAndroid中設置標誌圖標?
- 21. 無法在Android設備上運行react-native
- 22. 無法在Android設備上運行React-Native示例代碼
- 23. Expo React Native Wheelpicker Android
- 24. JSApplicationIllegalArgumentException與React Native Android
- 25. React Native Android Permission Denied
- 26. React-Native Android微調
- 27. 在OS X上使用ndenv設置React Native
- 28. 如何在iOS上設置React Native的分析功能
- 29. 在React Native AirBnb的MapView上關注用戶位置[Android]
- 30. 使用react-native啓用手機設置
嘗試:https://facebook.github.io/react-native/docs/headless-js-android.html –