h5+android端關於activityResult回調問題解析

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有三個數就是以上,目前無法獲取如果回調權限的話,如何得到申請權限的詳細信息,應該有,目前沒有找到,如果有知道的大神可以留言,相互學習,謝謝

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *