h5+android端关于activityResult回调问题解析
程序员文章站
2022-03-13 14:20:35
h5+android端关于activityresult回调问题解析,项目有h5+和android一起开发,android端主要是一个框架,具体界面和功能都是h5实现。
在调用相机...
h5+android端关于activityresult回调问题解析,项目有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有三个数就是以上,目前无法获取如果回调权限的话,如何得到申请权限的详细信息,应该有,目前没有找到,如果有知道的大神可以留言,相互学习,谢谢
上一篇: MySQL死锁的产生原因以及解决方案
下一篇: HTML5 Canvas 移动