h5+关于activityResult回调问题

来源:互联网 发布:最好的大数据上市公司 编辑:程序博客网 时间:2024/05/18 01:17

项目有h5+和android一起开发,android端主要是一个框架,具体界面和功能都是h5实现

在调用系统相机的时候,需要一个是确定和取消的回调,直接上代码

1、在这个类中有一个方法

/** * demo为以WebApp方式集成5+ sdk */public class SDK_WebApp extends Activity {
2、这个方法必须要有
protected void onActivityResult(int requestCode, int resultCode, Intent data) {    mEntryProxy.onActivityExecute(this, SysEventType.onActivityResult, new Object[]{requestCode, resultCode, data});}

3、在这个插件功能类中

public class CameraWaterMark extends StandardFeature {    private static final int TAKE_PHOTO_REQUEST_CODE = 1;    private int startCameraCount = 0;    private CreatWaterService c;    private Activity activity;    //    private File pic;    public static int MAX_DIM = 1024;    public static int QUALITY = 80;    private String mCallBackID;    private IWebview pWebview;    private boolean isBean;    public void onStart(Context mContext, Bundle pSavedInstanceState, String[] pRuntimeArgs) {        /**         * 如果需要在应用启动时进行初始化,可以继承这个方法,并在properties.xml文件的service节点添加扩展插件的注册即可触发onStart方法         * */    }
4、关键的代码来了

通过pWebview.obtainFrameView().obtainApp()可以获得一个IApp句柄。
IApp类存在registerSysEventListener方法,这个方法可以注册监听一些系统事件(SysEventType存在一些常用类型,比如onResume、onPause等)

final IApp _app = pWebview.obtainFrameView().obtainApp();_app.registerSysEventListener(new ISysEventListener() {    @Override    public boolean onExecute(SysEventType pEventType, Object pArgs) {        Object[] _args = (Object[]) pArgs;        int requestCode = (Integer) _args[0];        int resultCode = (Integer) _args[1];        Intent data = (Intent) _args[2];        if (pEventType == SysEventType.onActivityResult) {            _app.unregisterSysEventListener(this, SysEventType.onActivityResult);            if (resultCode == Activity.RESULT_OK) {                if (requestCode == 10) {

这个SysEventType中有好多Activity的回调方法,_args有三个数就是以上,目前无法获取如果回调权限的话,如何得到申请权限的详细信息,应该有,目前没有找到,如果有知道的大神可以留言,相互学习,谢谢






原创粉丝点击