项目有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有三个数就是以上,目前无法获取如果回调权限的话,如何得到申请权限的详细信息,应该有,目前没有找到,如果有知道的大神可以留言,相互学习,谢谢