sdk需要获取sdk之外的参数,方法,甚至Class?

1。 需要外部参数
可以用构造函数,或者set方法,在初始化的时候进行

2。需要外部方法
用回调方法实现


   //两个回调接口,分别用于拉取全局控制数据和单个activity的配置数据
    public interface SyncConfigDataCallback
    {
        public JSONArray downloadGlobalData();
        public JSONArray downloadPageData(String pageName);
    }
    public static SyncConfigDataCallback mSyncConfigDataCallback;

    public static void setSyncConfigDataCallback(SyncConfigDataCallback SyncConfigDataCallback)
    {
        mSyncConfigDataCallback = SyncConfigDataCallback;
    }

    //在BifrostConfig中调用,用于全局参数的配置获取
    public static void updateGlobalConfigData()
    {
            globalConfigJson = BFConfigCenterData.mSyncConfigDataCallback.downloadGlobalData();
//            Log.d("tingxiang global config","  "+globalConfigJson.length());
            if (globalConfigJson.length() > 0) {
                globalConfigData = new BFGlobalConfigModuleList(globalConfigJson);
            }

    }
  BFConfigCenterData.setSyncConfigDataCallback(new BFConfigCenterData.SyncConfigDataCallback() {
                    @Override
                    public JSONArray downloadGlobalData() {
                        JSONArray jsonData = null;
                        jsonData = TMConfigCenterManager.getInstance().getConfigDataArray("Bifrost");
                        return jsonData;
                    }

                    @Override
                    public JSONArray downloadPageData(String pageName) {
                        JSONArray jsonData = null;
                        jsonData = TMConfigCenterManager.getInstance().getConfigDataArray("bifrost_" + pageName);
                        return jsonData;
                    }
                });

3。 需要用到外部定义的class
注册外部类的class路径,在sdk中可根据这个路径找到这个类,注意在android 6。0的手机上,必须调用RegisterInvoker.getDeclaredConstructor().setAccessible(true);
否则会有权限问题

注册:

    BFInvokerMgr.registerBFInvoker(BFConstant.EVENT_SCREENSHOT_FEEDBACK, "com.tmall.wireless.application.bifrostinvoker.BFInvokerFeedback");
                BFInvokerMgr.registerBFInvoker(BFConstant.EVENT_JUMP_URL, "com.tmall.wireless.application.bifrostinvoker.BFInvokerJumpUrl");

根据类名寻找,新建类对象

 BFInvoker invoker = null;
            Class RegisterInvoker = null;
            try {
                RegisterInvoker = Class.forName(registeredInvokerClass.get(invokerType));
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            try {
                RegisterInvoker.getDeclaredConstructor().setAccessible(true);
              invoker =  (BFInvoker) RegisterInvoker.newInstance();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            }
            return invoker;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值