1***@163.com
1***@163.com
  • 发布:2018-11-15 16:01
  • 更新:2018-11-18 16:43
  • 阅读:1607

这个原生打包入口文件在那里,我想加上几个方法打开app执行的方法

分类:5+ SDK

文件目录
下面是要加的方法

  //检测通知监听服务是否被授权  
    public boolean isNotificationListenerEnabled(Context context) {  
        Set<String> packageNames = NotificationManagerCompat.getEnabledListenerPackages(this);  
        if (packageNames.contains(context.getPackageName())) {  
            return true;  
        }  
        return false;  
    }  
    //打开通知监听设置页面  
    public void openNotificationListenSettings() {  
        try {  
            Intent intent;  
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {  
                intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);  
            } else {  
                intent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");  
            }  
            startActivity(intent);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }
2018-11-15 16:01 负责人:无 分享
已邀请:
王者地带

王者地带 - 5+混合APP开发教程网 | http://www.html5-app.com | 咨询QQ: 2564034335

你是想,在APP打开的时候,就执行这个方法?

  • 1***@163.com (作者)

    是的

    2018-11-15 16:09

  • 1***@163.com (作者)

    我找不到java入口文件啊

    2018-11-15 16:09

  • 1***@163.com (作者)

    是这个ActivityEntry.java文件码

    2018-11-15 16:10

王者地带

王者地带 - 5+混合APP开发教程网 | http://www.html5-app.com | 咨询QQ: 2564034335

这个很简单,你离线打包的, 你创建一个类 ,继承官方提供的插件类StandardFeature ,例如:
domeFeature.java

import io.dcloud.common.DHInterface.StandardFeature;  

public class domeFeature extends StandardFeature  
{  
    public void onStart(Context pContext, Bundle pSavedInstanceState, String[] pRuntimeArgs) {  
        /**  
         * 如果需要在应用启动时进行初始化,可以继承这个方法,并在properties.xml文件的service节点添加扩展插件的注册即可触发onStart方法  
         * */  

    }  
}  

然后第二步,在properties.xml 中添加一行,添加节点,注册一个插件服务, 这个当APP打开时,就会触发
domeFeature.java 类,的onStart 方法

<services>  

<service name="domeFeature" value="com.xxx.xxx.domeFeature"/>  

</services>
  • 1***@163.com (作者)

    好的,谢谢,我试一下

    2018-11-15 16:25

  • 1***@163.com (作者)

    好像都是this报错了

    2018-11-15 16:57

1***@163.com

1***@163.com (作者) - ddddddd

错误
错误
错误
报好多错,一脸懵逼的我

import io.dcloud.common.DHInterface.StandardFeature;  
import android.content.ComponentName;  
import android.content.Context;  
import android.content.Intent;  
import android.content.pm.PackageManager;  
import android.provider.Settings;  
import android.support.v4.app.NotificationManagerCompat;  
import android.os.Bundle;  
import java.util.Set;  
public class Feature  extends  StandardFeature{  
    public void onStart(Context pContext, Bundle pSavedInstanceState, String[] pRuntimeArgs) {  
        /**  
         * 如果需要在应用启动时进行初始化,可以继承这个方法,并在properties.xml文件的service节点添加扩展插件的注册即可触发onStart方法  
         * */  
        if (!isNotificationListenerEnabled(this)){  
            openNotificationListenSettings();  
        }  
        toggleNotificationListenerService();  
    }  
    //检测通知监听服务是否被授权  
    public boolean isNotificationListenerEnabled(Context context) {  
        Set<String> packageNames = NotificationManagerCompat.getEnabledListenerPackages(this);  
        if (packageNames.contains(context.getPackageName())) {  
            return true;  
        }  
        return false;  
    }  
    //打开通知监听设置页面  
    public void openNotificationListenSettings() {  
        try {  
            Intent intent;  
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {  
                intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);  
            } else {  
                intent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");  
            }  
            startActivity(intent);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
    //把应用的NotificationListenerService实现类disable再enable,即可触发系统rebind操作  
    private void toggleNotificationListenerService() {  
        PackageManager pm = getPackageManager();  
        pm.setComponentEnabledSetting(  
                new ComponentName(this, com.example.H5PlusPlugin.NotificationMonitorService.class),  
                PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);  

        pm.setComponentEnabledSetting(  
                new ComponentName(this, com.example.H5PlusPlugin.NotificationMonitorService.class),  
                PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);  
    }  
}  
王者地带

王者地带 - 5+混合APP开发教程网 | http://www.html5-app.com | 咨询QQ: 2564034335

this 指针不对吧,试试写 pContext

  • 1***@163.com (作者)

    我可以付费帮我写个插件吗

    2018-11-15 20:55

邱水仙

邱水仙

跳转至权限设置页面不需要用离线打包来做,直接用native.js就行,另外,入口类(io.dcloud.PandoraEntry)被打包混淆了的,在编辑模式下可以找到它,没法改,只能按照官方手册继承

  • w***@wineha.club

    你好,跳转至权限设置页面不需要用离线打包来做,直接用native.js就行,试了好多方法,请问怎么实现得?通知使用权设置页的时候没有当前app

    2019-12-19 17:00

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