lifeng
lifeng
  • 发布:2015-05-19 11:41
  • 更新:2016-04-20 18:10
  • 阅读:6903

Html5页面跳转到Activity原生页面怎么跳?我写的跳转不了,麻烦大神指点!

分类:5+ SDK
                                // 导入Activity、Intent类  
                var Intent = plus.android.importClass("android.content.Intent");  

                // 获取主Activity对象的实例  
                var main = plus.android.runtimeMainActivity();  

                var MyActivity = plus.android.importClass("com.test.natives.MyActivity");  
                // 创建Intent  
                var call = new Intent(main, MyActivity);  

                main.startActivity(call);
2015-05-19 11:41 负责人:无 分享
已邀请:
lifeng

lifeng (作者)

问题已解决:
我的解决方案:
1.编写一个java辅助类

public class Helper {  
    /**  
     * js调用后进行跳转  
     *   
     * @param activity  
     *            传入当前Activity  
     */  
    public void jump(Activity activity) {  
        Intent mIntent = new Intent(activity, MyActivity.class);  
        activity.startActivity(mIntent);  
    }  
}  

2.然后编写js方法调用java方法

                                //获取当前Activity  
                                var main = plus.android.runtimeMainActivity();  
                                //获取java辅助类  
                var Helper = plus.android.importClass("com.test.natives.Helper");  
                                //创建对象实例  
                var mHelper = new Helper();  
                                //调用java中的跳转方法,并且传入当前activity实例  
                mHelper.jump(main);

完美实现跳转到Activity原生页面。

  • demon

    可以详细讲解吗?需要怎样配置

    2015-05-31 11:31

  • imthx@qq.com

    JAVA类写在哪儿啊,我在Hbuilder里没看见哪里可以写JAVA类啊。

    2017-05-31 15:32

  • 375890534@qq.com

    请教一下,uni-app应该怎么写?

    2018-11-27 19:35

太阳神

太阳神

我这样更方便,不用写java辅助类

var Intent = plus.android.importClass("android.content.Intent");
var ComponentName = plus.android.importClass("android.content.ComponentName");
var _intent = new Intent();
_intent.setComponent(new ComponentName("com.haha", "com.haha.XxxActivity"));
var main = plus.android.runtimeMainActivity();
main.startActivity(_intent);

  • dfsdafsdf

    哥们 你这个 无效哦

    亲测

    2016-03-12 17:54

  • dfsdafsdf

    var Intent = plus.android.importClass("android.content.Intent");

    var ComponentName = plus.android.importClass("android.content.ComponentName");

    var _intent = new Intent();

    _intent.setComponent(new ComponentName("io.dcloud", "io.dcloud.MainActivity"));

    var main = plus.android.runtimeMainActivity();

    main.startActivity(_intent);

    2016-03-12 17:54

  • 791106912@qq.com

    回复 dfsdafsdf:您好,请问这样的工程只能运行在eclipse里面吗

    2017-03-27 10:34

小小马

小小马 - 程序猿

不错。

Android_mabo

Android_mabo

聪明

freechina

freechina

nice!!!

choys

choys

那怎么从activity返回html页面呢?

12312312

12312312

各位大神,请问ios要如何写呢?

  • DCloud_heavensoft

    ios没有Activity

    2015-10-28 16:57

  • 12312312

    哦,那要如何才能跳转到原生的界面(controller)呢?

    2015-10-30 11:34

xiamo152

xiamo152

lz方法还可优化不需要在html层导入Java类对象,以此减少系统资源的消耗:

public class Helper {
/**

  • js调用后进行跳转
  • @param activity
  • 传入当前Activity
    */
    public static void jump(Activity activity) {
    Intent mIntent = new Intent(activity, MyActivity.class);
    activity.startActivity(mIntent);
    }
    }

2.然后编写js方法调用java方法


//获取当前Activity  
var main = plus.android.runtimeMainActivity();  

// 通过5 sdk 插件的invoke方法起调对象方法  
plus.android.invoke('com.test.natives.Helper','jump',main );  
  • m18507162969@163.com

    plus.android.invoke('com.test.natives.Helper','jump',main ); 这个为何调不通呢?

    2016-05-11 10:51

  • imthx@qq.com

    为何,我在Hbuilder里找不到写JAVA类的地方。

    2017-05-31 15:33

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