欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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