Absorbed66c
Absorbed66c
  • 发布:2021-09-28 15:06
  • 更新:2022-06-02 17:56
  • 阅读:1259

【报Bug】更新到3.2.9后无法映入安卓NotificationManagerCompat包

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.2.9

手机系统: Android

手机系统版本号: Android 11

手机厂商: 华为

手机机型: 华为p30pro

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

// 通知权限判断 开启返回 true 否则 返回false
function isOpenNotifications(){
if(uni.getSystemInfoSync().platform == 'ios'){
// IOS
const UIApplication = plus.ios.import("UIApplication");
const app = UIApplication.sharedApplication();
let enabledTypes = 0;
if (app.currentUserNotificationSettings) {
var settings = app.currentUserNotificationSettings();
enabledTypes = settings.plusGetAttribute("types");
} else {
//针对低版本ios系统
enabledTypes = app.enabledRemoteNotificationTypes();
}
plus.ios.deleteObject(app);
return enabledTypes != 0
}
//安卓
const main = plus.android.runtimeMainActivity();
const pkName = main.getPackageName();
// 此处无法引入 导致后续代码报错
const NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");
const packageNames = NotificationManagerCompat.from(main);
return !!packageNames.areNotificationsEnabled()
}

操作步骤:
const main = plus.android.runtimeMainActivity();    
    const pkName = main.getPackageName();    
          // 此处无法引入 导致后续代码报错  
    const NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");    
    const packageNames = NotificationManagerCompat.from(main);   

预期结果:

引入NotificationManagerCompat 包用于判断是否开启通知

实际结果:

无法引入

bug描述:

更新到 3.2.9后原来用于判断手机是否开启开启通知的工具类报错
上一版本是可行的

14:56:41.544 [JS Framework] Failed to execute the callback function:
14:56:41.574 TypeError: Cannot read property 'from' of null
14:56:41.607 reportJSException >>>> exception function:WEEX_CALL_JAVASCRIPT, exception:JavaScript execute error!Uncaught TypeError: Cannot read property 'from' of null

2021-09-28 15:06 负责人:无 分享
已邀请:
FireFlyTest

FireFlyTest - 萤火虫鸿蒙开发

你引入包的时候,改为androidx.core.app.NotificationManagerCompat;

hbuilderx上次更新有提示,我也遇到这个问题,最后官方技术帮我解决的,改成上面这段引入报名的代码就搞定了。

  • Absorbed66c (作者)

    感谢 确实可以

    2021-09-28 15:34

d***@qq.com

d***@qq.com

同样遇到了
改为androidx.core.app.NotificationManagerCompat
就可以了

s***@163.com

s***@163.com - steed

确实是改为androidx.core.app.NotificationManagerCompat就可以了,这个错报的莫名其妙,我的APP控制台报的错是:

19:05:49.114 如手机上自定义基座App未启动,请手动启动...  
19:05:49.699 Uncaught SyntaxError: Unexpected identifier at client_index.html:1

害我一直在查client_index.html的问题。

  • kdb

    var main = plus.android.runtimeMainActivity();

    var NotificationManagerCompat = plus.android.importClass("androidx.core.app.NotificationManagerCompat");

    var packageNames = NotificationManagerCompat.from(main);

    结果 packageNames 是个null 无法后续判断是为什么

    2021-11-03 15:23

  • kdb

    回复 7***@qq.com: - -是因为测试安卓机的版本太老导致的,新一点的安卓系统是没问题的

    2021-11-03 15:38

pnpl

pnpl

小米k40 安卓12,使用androidx.core.app.NotificationManagerCompat,还是报null,只有我这样么?

该问题目前已经被锁定, 无法添加新回复