Преглед изворни кода

fix: 修改airbridge的事件名,解决图片像素过小会崩溃的bug

Destiny пре 10 месеци
родитељ
комит
a633b85859

+ 61 - 61
lib/data/consts/event_report_id.dart

@@ -2,58 +2,58 @@ abstract class EventId{
   static const String type = 'type';
 
   // c_01000	启屏
-  static const String event_01000 = 'c_01000'; //启屏-展示
+  static const String event_01000 = '启屏'; //启屏-展示
   // c_01001	隐私页面1-展示
   // static const String event_01001 = 'c_01001'; //隐私页面1-展示
   // c_01002	隐私页面1-点击开始
-  static const String event_01002 = 'c_01002'; //隐私页面1-点击开始
+  static const String event_01002 = '隐私页面1-点击开始'; //隐私页面1-点击开始
   // c_01003	新人引导页面1-展示
-  static const String event_01003 = 'c_01003'; //新人引导页面1-展示
+  static const String event_01003 = '新人引导页面1-展示'; //新人引导页面1-展示
   // c_01004	新人引导页面1-点击
-  static const String event_01004 = 'c_01004'; //新人引导页面1-点击
+  static const String event_01004 = '新人引导页面1-点击'; //新人引导页面1-点击
   // c_01005	新人引导页面2-展示
-  static const String event_01005 = 'c_01005'; //新人引导页面2-展示
+  static const String event_01005 = '新人引导页面2-展示'; //新人引导页面2-展示
   // c_01006	新人引导页面2-点击
   // static const String event_01006 = 'c_01006'; //新人引导页面2-点击
 
 
   // 会员页
   // c_02000	会员-点击-入口
-  static const String event_02000 = 'c_02000'; //会员-点击-入口
+  static const String event_02000 = '会员-点击-入口'; //会员-点击-入口
   // c_02001	会员页-展示
-  static const String event_02001 = 'c_02001'; //会员页-展示
+  static const String event_02001 = '会员页-展示'; //会员页-展示
   // c_02002	会员页-点击-付费按钮
-  static const String event_02002 = 'c_02002'; //会员页-点击-付费按钮
+  static const String event_02002 = '会员页-点击-付费按钮'; //会员页-点击-付费按钮
   // c_02003	会员页-点击-关闭按钮
-  static const String event_02003 = 'c_02003'; //会员页-点击-关闭按钮
+  static const String event_02003 = '会员页-点击-关闭按钮'; //会员页-点击-关闭按钮
   // c_02004	会员页-点击-恢复订阅
-  static const String event_02004 = 'c_02004'; //会员页-点击-恢复订阅
+  static const String event_02004 = '会员页-点击-恢复订阅'; //会员页-点击-恢复订阅
   // 会员折扣页	c_02005	会员折扣页-展示
-  static const String event_02005 = 'c_02005'; //会员折扣页-展示
+  static const String event_02005 = '会员折扣页-展示'; //会员折扣页-展示
   // c_02006	会员页-点击-付费按钮
-  static const String event_02006 = 'c_02006'; //会员页-点击-付费按钮
+  static const String event_02006 = '会员页-点击-付费按钮'; //会员页-点击-付费按钮
   // c_02007	会员页-关闭支付弹窗
-  static const String event_02007 = 'c_02007'; //会员页-关闭支付弹窗
+  static const String event_02007 = '会员页-关闭支付弹窗'; //会员页-关闭支付弹窗
 
   // 首页
   // c_03000	首页-展示
   // static const String event_03000 = 'c_03000'; //首页-展示
   // c_03001	首页-点击-重复项clean
-  static const String event_03001 = 'c_03001'; //首页-点击-重复项clean
+  static const String event_03001 = '首页-点击-重复项clean'; //首页-点击-重复项clean
   // c_03002	首页-点击-人物项clean
-  static const String event_03002 = 'c_03002'; //首页-点击-人物项clean
+  static const String event_03002 = '首页-点击-人物项clean'; //首页-点击-人物项clean
   // c_03003	首页-点击-地点项clean
-  static const String event_03003 = 'c_03003'; //首页-点击-地点项clean
+  static const String event_03003 = '首页-点击-地点项clean'; //首页-点击-地点项clean
   // c_03004	首页-点击-截图项clean
-  static const String event_03004 = 'c_03004'; //首页-点击-截图项clean
+  static const String event_03004 = '首页-点击-截图项clean'; //首页-点击-截图项clean
   // c_03005	首页-点击-模糊项clean
-  static const String event_03005 = 'c_03005'; //首页-点击-模糊项clean
+  static const String event_03005 = '首页-点击-模糊项clean'; //首页-点击-模糊项clean
   // 首页按钮	c_03006	图片清理页-页面展示
-  static const String event_03006 = 'c_03006'; //图片清理页-页面展示
+  static const String event_03006 = '图片清理页-页面展示'; //图片清理页-页面展示
   // c_03007	重复项-点击-Move按钮
-  static const String event_03007 = 'c_03007'; //重复项-点击-Move按钮
+  static const String event_03007 = '重复项-点击-Move按钮'; //重复项-点击-Move按钮
   // c_03008	地点页-点击-删除
-  static const String event_03008 = 'c_03008'; //地点页-点击-删除
+  static const String event_03008 = '地点页-点击-删除'; //地点页-点击-删除
   // // c_03009	截屏页-点击-删除
   // static const String event_03009 = 'c_03009'; //截屏页-点击-删除
   // // c_03010	模糊图片-点击-删除
@@ -61,92 +61,92 @@ abstract class EventId{
   //
   // 预览页-通用
   // c_04000	图片预览引导页-展示
-  static const String event_04000 = 'c_04000'; //图片预览引导页-展示
+  static const String event_04000 = '图片预览引导页-展示'; //图片预览引导页-展示
   // c_04001	图片预览引导页-点击-试一试
-  static const String event_04001 = 'c_04001'; //图片预览引导页-点击-试一试
+  static const String event_04001 = '图片预览引导页-点击-试一试'; //图片预览引导页-点击-试一试
   // c_04002	图片预览页-展示
-  static const String event_04002 = 'c_04002'; //图片预览页-展示
+  static const String event_04002 = '图片预览页-展示'; //图片预览页-展示
   // c_04003	图片预览页-点击-返回
-  static const String event_04003 = 'c_04003'; //图片预览页-点击-返回
+  static const String event_04003 = '图片预览页-点击-返回'; //图片预览页-点击-返回
   // c_04004	图片预览页-点击-删除按钮
-  static const String event_04004 = 'c_04004'; //图片预览页-点击-删除按钮
+  static const String event_04004 = '图片预览页-点击-删除按钮'; //图片预览页-点击-删除按钮
   // c_04005	图片选中列表-点击-入口
-  static const String event_04005 = 'c_04005'; //图片选中列表-点击-入口
+  static const String event_04005 = '图片选中列表-点击-入口'; //图片选中列表-点击-入口
   // c_04006	图片选中列表-点击-删除
-  static const String event_04006 = 'c_04006'; //图片选中列表-点击-删除
+  static const String event_04006 = '图片选中列表-点击-删除'; //图片选中列表-点击-删除
   // c_04007	图片选中列表-点击-返回
-  static const String event_04007 = 'c_04007'; //图片选中列表-点击-返回
+  static const String event_04007 = '图片选中列表-点击-返回'; //图片选中列表-点击-返回
   // c_04008	结果页-完成删除(删除本地相册照片)
-  static const String event_04008 = 'c_04008'; //结果页-完成删除(删除本地相册照片)
+  static const String event_04008 = '结果页-完成删除(删除本地相册照片)'; //结果页-完成删除(删除本地相册照片)
   // c_04009	保留结果页
-  static const String event_04009 = 'c_04009'; //保留结果页
+  static const String event_04009 = '保留结果页'; //保留结果页
   //
   // 隐私空间
   // c_05000	隐私空间-点击-入口
-  static const String event_05000 = 'c_05000'; //隐私空间-点击-入口
+  static const String event_05000 = '隐私空间-点击-入口'; //隐私空间-点击-入口
   // c_05001	隐私空间-密码页展示
-  static const String event_05001 = 'c_05001'; //隐私空间-密码页展示
+  static const String event_05001 = '隐私空间-密码页展示'; //隐私空间-密码页展示
   // c_05002	照片上传页-展示
-  static const String event_05002 = 'c_05002'; //照片上传页-展示
+  static const String event_05002 = '照片上传页-展示'; //照片上传页-展示
   // c_05003	照片预览页-展示
-  static const String event_05003 = 'c_05003'; //照片预览页-展示
+  static const String event_05003 = '照片预览页-展示'; //照片预览页-展示
   // c_05004	照片预览页-点击-删除
-  static const String event_05004 = 'c_05004'; //照片预览页-点击-删除
+  static const String event_05004 = '照片预览页-点击-删除'; //照片预览页-点击-删除
 
   // 壁纸
   // c_06000	壁纸-点击-入口
-  static const String event_06000 = 'c_06000'; //壁纸-点击-入口
+  static const String event_06000 = '壁纸-点击-入口'; //壁纸-点击-入口
   // c_06001	壁纸页展示
-  static const String event_06001 = 'c_06001'; //壁纸页展示
+  static const String event_06001 = '壁纸页展示'; //壁纸页展示
   // c_06002	壁纸页-点击-下载
-  static const String event_06002 = 'c_06002'; //壁纸页-点击-下载
+  static const String event_06002 = '壁纸页-点击-下载'; //壁纸页-点击-下载
   //
   // 设置	c_07000	设置-点击-入口
-  static const String event_07000 = 'c_07000'; //设置-点击-入口
+  static const String event_07000 = '设置-点击-入口'; //设置-点击-入口
   // c_07001	设置页-展示
-  static const String event_07001 = 'c_07001'; //设置页-展示
+  static const String event_07001 = '设置页-展示'; //设置页-展示
   //
   // 联系人模块	c_08000	管理联系人入口点击
-  static const String event_08000 = 'c_08000'; //管理联系人入口点击
+  static const String event_08000 = '管理联系人入口点击'; //管理联系人入口点击
   // c_08001	所有联系人-入口点击
-  static const String event_08001 = 'c_08001'; //所有联系人-入口点击
+  static const String event_08001 = '所有联系人-入口点击'; //所有联系人-入口点击
   // c_08002	所有联系人页-展示
-  static const String event_08002 = 'c_08002'; //所有联系人页-展示
+  static const String event_08002 = '所有联系人页-展示'; //所有联系人页-展示
   // c_08003	所有联系人页-删除
-  static const String event_08003 = 'c_08003'; //所有联系人页-删除
+  static const String event_08003 = '所有联系人页-删除'; //所有联系人页-删除
   // c_08004	重复联系人-入口点击
-  static const String event_08004 = 'c_08004'; //重复联系人-入口点击
+  static const String event_08004 = '重复联系人-入口点击'; //重复联系人-入口点击
   // c_08005	重复联系人页-展示
-  static const String event_08005 = 'c_08005'; //重复联系人页-展示
+  static const String event_08005 = '重复联系人页-展示'; //重复联系人页-展示
   // c_08006	重复联系人页-点击-合并
-  static const String event_08006 = 'c_08006'; //重复联系人页-点击-合并
+  static const String event_08006 = '重复联系人页-点击-合并'; //重复联系人页-点击-合并
   // c_08007	不完整联系人-入口点击
-  static const String event_08007 = 'c_08007'; //不完整联系人-入口点击
+  static const String event_08007 = '不完整联系人-入口点击'; //不完整联系人-入口点击
   // c_08008	不完整联系人页-展示
-  static const String event_08008 = 'c_08008'; //不完整联系人页-展示
+  static const String event_08008 = '不完整联系人页-展示'; //不完整联系人页-展示
   // c_08009	不完整联系人页-点击-删除
-  static const String event_08009 = 'c_08009'; //不完整联系人页-点击-删除
+  static const String event_08009 = '不完整联系人页-点击-删除'; //不完整联系人页-点击-删除
   // c_08010	备份联系人-入口点击
-  static const String event_08010 = 'c_08010'; //备份联系人-入口点击
+  static const String event_08010 = '备份联系人-入口点击'; //备份联系人-入口点击
   // c_08011	备份联系人页-展示
-  static const String event_08011 = 'c_08011'; //备份联系人页-展示
+  static const String event_08011 = '备份联系人页-展示'; //备份联系人页-展示
   // c_08012	备份联系人页-点击-备份
-  static const String event_08012 = 'c_08012'; //备份联系人页-点击-备份
+  static const String event_08012 = '备份联系人页-点击-备份'; //备份联系人页-点击-备份
   //
   // 照片分析	c_09000	照片分析-入口点击
-  static const String event_09000 = 'c_09000'; //照片分析-入口点击
+  static const String event_09000 = '照片分析-入口点击'; //照片分析-入口点击
   // c_09001	照片分析-上传按钮点击
-  static const String event_09001 = 'c_09001'; //照片分析-上传按钮点击
+  static const String event_09001 = '照片分析-上传按钮点击'; //照片分析-上传按钮点击
   // c_09002	照片分析-图片预览
-  static const String event_09002 = 'c_09002'; //照片分析-图片预览
+  static const String event_09002 = '照片分析-图片预览'; //照片分析-图片预览
   // c_09003	照片分析-图片预览-点击删除
-  static const String event_09003 = 'c_09003'; //照片分析-图片预览-点击删除
+  static const String event_09003 = '照片分析-图片预览-点击删除'; //照片分析-图片预览-点击删除
   //
   // tab点击	c_10000	照片日历
-  static const String event_10000 = 'c_10000'; //照片日历
+  static const String event_10000 = '照片日历'; //照片日历
   // c_10001	首页
-  static const String event_10001 = 'c_10001'; //首页
+  static const String event_10001 = '首页'; //首页
   // c_10002	更多功能
-  static const String event_10002 = 'c_10002'; //更多功能
+  static const String event_10002 = '更多功能'; //更多功能
 
 }

+ 6 - 2
lib/module/home/home_controller.dart

@@ -92,11 +92,15 @@ class HomeController extends BaseController {
 
     if (userRepository.userInfo.value != null) {
        Airbridge.setUserID(userRepository.userInfo.value!.ssid);
-       
+
        // 接收归因结果
        Airbridge.setOnAttributionReceived((result) {
          print(result);
-         eventRepository.attrPush(userRepository.userInfo.value!.ssid, "airbridge", jsonEncode(result));
+         Map<String, String> attr = <String, String>{};
+         attr["attributedChannel"] = "Appstore";
+         Airbridge.fetchDeviceUUID(onSuccess: (uuid) {
+            eventRepository.attrPush(uuid, "airbridge", jsonEncode(result));
+         });
        });
     }
     

+ 9 - 2
plugins/classify_photo/ios/Classes/ClassifyPhoto.swift

@@ -197,7 +197,7 @@ class ClassifyPhoto {
                     
                     PHImageManager.default().requestImage(
                         for: asset,
-                        targetSize: CGSize(width: 448, height: 448),
+                        targetSize: CGSize(width: 256, height: 256),
                         contentMode: .aspectFit,
                         options: options
                     ) { image, _ in
@@ -493,8 +493,16 @@ class ClassifyPhoto {
 
     // 快速模糊检测方法
     private func quickBlurCheck(_ image: CGImage) -> Bool {
+        
         let width = image.width
         let height = image.height
+        let stride = 2 // 跳过一些像素以加快速度
+        
+        // 提前检查图像尺寸是否合法
+        guard width > (2 * stride), height > (2 * stride) else {
+            return false // 小尺寸图像直接判定为模糊或清晰
+        }
+        
         var buffer = [UInt8](repeating: 0, count: width * height)
         
         let colorSpace = CGColorSpaceCreateDeviceGray()
@@ -514,7 +522,6 @@ class ClassifyPhoto {
         
         // 使用简化的拉普拉斯算子
         var score: Double = 0
-        let stride = 2 // 跳过一些像素以加快速度
         
         for y in stride..<(height-stride) where y % stride == 0 {
             for x in stride..<(width-stride) where x % stride == 0 {