Aceo
Aceo
  • 发布:2016-10-26 16:00
  • 更新:2016-11-10 14:33
  • 阅读:6821

可以在mui里调用自己写的原生Activity吗

分类:Native.js

如题,用nativeJS能做到吗,具体该怎么做?
我自己写了段,但是报错了,请帮忙看看是代码写的有问题还是mui不支持。

//判断当前的运行平台  
    switch ( plus.os.name ) {  
        case "Android": // Android平台: plus.android.*  
            // Android平台导入Intent类  
            var Intent = plus.android.importClass("android.content.Intent");  
            // 获取主Activity对象的实例  
            var main = plus.android.runtimeMainActivity();  
            // 导航类  
            var naviActivityClass = plus.android.importClass("com.app.logistics.ui.navi.GPSNaviActivity");  
            var naviIntent = new Intent(main.this, naviActivityClass.class);  
            main.startActivity(naviIntent);  
         break;  
        case "iOS": // iOS平台: plus.ios.*  

            break;  
        default: // 其它平台  
            // 设置目标位置坐标点和其实位置坐标点  
            var dst = new plus.maps.Point(116.39131928,39.90793074); // 天安门   
            var src = new plus.maps.Point(116.335,39.966); // 大钟寺  
            // 调用系统地图显示   
            plus.maps.openSysMap( dst, "天安门", src );  
            break;  
    }
2016-10-26 16:00 负责人:无 分享
已邀请:
Aceo

Aceo (作者)

问题已解决。
像上面那样就算在Eclipse里运行也调用不了原生Activity。改成下面这样就可以了:

var Intent = plus.android.importClass("android.content.Intent");  
            // 获取主Activity对象的实例  
            var main = plus.android.runtimeMainActivity();  
            // 创建Intent  
            var naviIntent = new Intent();  
            var ComponentName = plus.android.importClass("android.content.ComponentName");  
            naviIntent.setComponent(new ComponentName(main, "com.app.logistics.navi.BaiduNaviActivity"));  
main.startActivity(naviIntent);
  • JoyceWu12

    很有用!

    2018-05-29 14:09

  • 张三ewewe

    调用原生Activity里的方法呢?

    2018-12-04 14:25

赵梦欢

赵梦欢 - 专注前端,乐于分享!

如果是调用原生系统方法,可以使用nativejs在hbuilder直接调用;如果是自己写的原生代码,需要离线打包,自然不能直接在hbuilder中调用,比如可以使用eclipse,android studio,xcode.

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