Notice: 函数 WP_Scripts::localize 的调用方法不正确$l10n 参数必须是一个数组。若要将任意数据传递给脚本,请改用 wp_add_inline_script() 函数。 请查阅调试 WordPress来获取更多信息。 (这个消息是在 5.7.0 版本添加的。) in /data/www/appblog/wp-includes/functions.php on line 6131

Atlas插件bundle与host通信之接口方式

在公共library中定义中间件接口

package cn.appblog.example_common.middleware;

public interface ISwitchMainTabListener {
    void onSwitchTab(int position);
}

单例封装接口监听器的Getter与Setter

package cn.appblog.example_common.middleware;

import android.content.Context;

public class MiddlewareHelper {
    private static MiddlewareHelper mMiddlewareHelper;
    private Context mContext;
    private ISwitchMainTabListener mSwitchMainTabListener;

    private MiddlewareHelper(Context context) {
        mContext = context;
    }

    public static MiddlewareHelper getInstance(Context context) {
        if (mMiddlewareHelper == null) {
            synchronized (MiddlewareHelper.class) {
                if (mMiddlewareHelper == null) {
                    mMiddlewareHelper = new MiddlewareHelper(context.getApplicationContext());
                }
            }
        }
        return mMiddlewareHelper;
    }

    public ISwitchMainTabListener getSwitchMainTabListener() {
        return mSwitchMainTabListener;
    }

    public void setSwitchMainTabListener(ISwitchMainTabListener listener) {
        this.mSwitchMainTabListener = listener;
    }
}

在host中设置监听

public class MainActivity extends AppCompatActivity implements ISwitchMainTabListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MiddlewareHelper.getInstance(this).setSwitchMainTabListener(this);
    }

    @Override
    public void onSwitchTab(int position) {
        mViewPager.setCurrentItem(position, false);
    }   
}

在bundle中发送消息

MiddlewareHelper.getInstance(context).getSwitchMainTabListener().onSwitchTab(0);
上一篇 ViewPager使用FragmentPagerAdapter滑动Fragment动态加载Atlas bundle不显示问题
下一篇 Atlas加载bundle插件总结:ViewGroup中加载及本地startActivity方式