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