leon před 1 rokem
rodič
revize
0b13c9d6d7

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
android/app/src/main/assets/index.android.bundle


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
android/app/src/main/assets/index.android.map


+ 1 - 1
android/app/src/main/java/com/hola/AlarmReceiver.java

@@ -27,7 +27,7 @@ public class AlarmReceiver extends BroadcastReceiver {
         Intent intent2 = new Intent(context, MainActivity.class);
         PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent2, PendingIntent.FLAG_IMMUTABLE);
         // 创建通知构建器
-        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channel)
+        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, strId)
                 .setSmallIcon(R.drawable.ic_stat_onesignal_default)
                 .setContentTitle(title)
                 .setContentText(message)

+ 5 - 0
android/app/src/main/java/com/hola/GlobalVariable.java

@@ -0,0 +1,5 @@
+package com.hola;
+
+public class GlobalVariable {
+    public static boolean rnLoaded = false;
+}

+ 6 - 0
android/app/src/main/java/com/hola/HolaModule.java

@@ -95,6 +95,7 @@ public class HolaModule extends ReactContextBaseJavaModule {
                 intent.putExtra("channel", CHANNEL_ID);
                 intent.putExtra("id",strId);
                 intent.putExtra("categoryId",categoryId);
+                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 
                 PendingIntent pendingIntent = PendingIntent.getBroadcast(
                         getCurrentActivity(), 0, intent, android.app.PendingIntent.FLAG_IMMUTABLE);
@@ -128,6 +129,11 @@ public class HolaModule extends ReactContextBaseJavaModule {
         }
     }
 
+    @ReactMethod
+    public void rnPageLoaded(){
+        GlobalVariable.rnLoaded = true;
+    }
+
     @ReactMethod
     public void addLocalPush2(String title,String content,String time){
         if (getCurrentActivity()==null){

+ 42 - 9
android/app/src/main/java/com/hola/MainActivity.java

@@ -8,6 +8,7 @@ import android.content.Intent;
 import android.graphics.Color;
 import android.os.Build;
 import android.os.Bundle;
+import android.os.Handler;
 import android.os.SystemClock;
 import android.util.Log;
 
@@ -26,6 +27,9 @@ import java.util.Calendar;
 
 public class MainActivity extends ReactActivity {
 
+  private Handler handler;
+  private Runnable runnable;
+
   private static final String CHANNEL_ID = "local_notification_channel";
   private static final String CHANNEL_NAME = "Daily Reminder";
   private static final String CHANNEL_DESCRIPTION = "Daily reminder notification at 9:00 AM";
@@ -49,25 +53,54 @@ public class MainActivity extends ReactActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState){
     super.onCreate(null);
+    checkNotification(getIntent());
+//    String action = getIntent().getAction();
+//    System.out.println("notification receive action action:"+action);
   }
 
   @Override
   public void onNewIntent(Intent intent) {
     super.onNewIntent(intent);
+//    System.out.println("notification receive action 疯狂加载中open");
+
+    checkNotification(intent);
+
+
+  }
+
+  private void checkNotification(Intent intent){
     if ("START_TIMER_NOW".equals(intent.getAction())||
             "PICK_EARLIER_START".equals(intent.getAction())||
             "END_TIMER_NOW".equals(intent.getAction())||
             "PICK_EARLIER_END".equals(intent.getAction())
     ) {
-      WritableMap payload = Arguments.createMap();
-      payload.putString("category_id",intent.getStringExtra("category_id"));
-      payload.putString("action_id",intent.getAction());
-      payload.putString("id",intent.getStringExtra("id"));
-      //category_id, action_id,id
-      getReactInstanceManager().
-              getCurrentReactContext().
-              getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).
-              emit("notificationReceive",payload);
+      handler = new Handler();
+      runnable = new Runnable() {
+        @Override
+        public void run() {
+          // 每秒检查 GlobalVariable.isValueTrue 的值
+          System.out.println("notification receive action 疯狂加载中");
+          if (GlobalVariable.rnLoaded) {
+            // 如果为 true,停止计时器并使用 receivedIntent 对象
+            handler.removeCallbacks(this);
+
+            WritableMap payload = Arguments.createMap();
+            payload.putString("category_id",intent.getStringExtra("category_id"));
+            payload.putString("action_id",intent.getAction());
+            payload.putString("id",intent.getStringExtra("id"));
+            //category_id, action_id,id
+            getReactInstanceManager().
+                    getCurrentReactContext().
+                    getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).
+                    emit("notificationReceive",payload);
+            return;
+          }
+          handler.postDelayed(this, 1000); // 每隔 1 秒执行一次
+        }
+      };
+      handler.post(runnable);
+
+
     }
   }
 

+ 4 - 0
src/pages/clock/ClockMain.tsx

@@ -516,6 +516,10 @@ export default function Page() {
                     var Jto = require('react-native').NativeModules.NativeBridge;
                     Jto.rnPageLoaded()
                 }
+                else {
+                    var Jto = require('react-native').NativeModules.HolaModule;
+                    Jto.rnPageLoaded()
+                }
             }
 
             setLoaded(true)

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů