Calow
Calow
  • 发布:2015-01-07 17:43
  • 更新:2020-03-18 15:19
  • 阅读:6381

android平台自定义插件开发---调用其他Activity问题

分类:5+ SDK
SDK

在新建的插件的execute方法中,利用传进来的webView获得的activity对象来启动另外一个应用,代码如下:
@TargetApi(Build.VERSION_CODES.CUPCAKE)
@SuppressLint("NewApi")
@Override
public String execute(final IWebview pWebview, final String action,
final String[] pArgs) {
if ("PlutinTestFunctionSync".equals(action)) {
Intent intent = new Intent();
intent.setAction("android.intent.action.ReFresh");
intent.addCategory("android.intent.category.DEFAULT");
pWebview.getActivity().startActivityForResult(intent, 0);
}

问题:1.如何获得调用其他应用之后返回的结果?
2.怎么操作webView的onActivityResult方法?

2015-01-07 17:43 负责人:无 分享
已邀请:
Android_磊子

Android_磊子

通过pWebview.obtainFrameView().obtainApp()可以获得一个IApp句柄。
IApp类存在registerSysEventListener方法,这个方法可以注册监听一些系统事件(SysEventType存在一些常用类型,比如onResume、onPause等)。如下为gallery.pick实现样例:
final IApp _app = pWebViewImpl.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 (requestCode == GALLERY_RESULT) {  

        }  
     }  
     return false;  
 }  

}, SysEventType.onActivityResult);
Intent intent = new Intent(Intent.ACTION_PICK);
pWebViewImpl.getActivity().startActivityForResult(intent, GALLERY_RESULT);

  • Calow (作者)

    万分感谢!

    2015-01-08 13:09

  • Encounter

    我为啥没用起呢,调不到呀?

    2017-03-10 22:09

  • 4***@qq.com

    第一次是正常的,但是第二次调用这个方法,刚进入页面,SysEventType.onActivityResult 这个方法就执行了,再次返回,这个方法就不执行了,导致每次返回的数据都是第一次的数据,这个怎么处理

    2020-02-22 00:34

伟子

伟子

参照插件开发文档做咯

  • Calow (作者)

    开发文档没有这方面的,只有调用第三方插件的

    2015-01-07 19:45

4***@qq.com

4***@qq.com

第一次是正常的,但是第二次调用这个方法,刚进入页面,SysEventType.onActivityResult 这个方法就执行了,再次返回,这个方法就不执行了,导致每次返回的数据都是第一次的数据,这个怎么处理

Gavin2020

Gavin2020

5+sdk官方已经不维护和技术支持了

该问题目前已经被锁定, 无法添加新回复