uni-app 跳转Android原生界面(Activity)_uniapp 设置 activity 类-程序员宅基地

技术标签: uni-app  

最近又接触一个混合开发框架 uni-app,之前有用过APICloud ,cordova,flutter等混合开发,并做提供相应的插件开发,所以 uni-app也避免不了 插件开发和混合交互;这里就说一下开启原生Activity的方法


一、Js开启原生Activity


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
</head>
<body>
<input type="button" value="js start native Activity" onclick="jsCallNativeActivity()"/>
</body>
<script type="text/javascript">
  function jsCallNativeActivity(){
    
  //获取宿主上下文
  var main = plus.android.runtimeMainActivity();
   //通过反射获取Android的Intent对象
  var Intent = plus.android.importClass("android.content.Intent");
  //通过宿主上下文创建 intent
  var intent = new Intent(main.getIntent());
  //设置要开启的Activity包类路径  com.HBuilder.integrate.MainActivity换掉你自己的界面
  intent.setClassName(main, "com.HBuilder.integrate.MainActivity");
  //开启新的任务栈 (跨进程)
  intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  //开启新的界面
  main.startActivity(intent);
  }


</script>
</html>

二、uni-app Plugin开启原生Activity

 private void goNewActivity() {
    
        Intent intent = new Intent();
        Log.d("PluginTestFunction", "PluginTestFunction: " + intent);
        //com.HBuilder.integrate换成你的包名,com.HBuilder.integrate.MainActivity换成你要开启的Activity的全路径
        intent.setClassName("com.HBuilder.integrate", "com.HBuilder.integrate.MainActivity");
        Context mContext = getDPluginContext();
//        Activity mDPluginActivity = getDPluginActivity(); 这个值为null
        Log.d("PluginTestFunction", "mDPluginActivity: " + mContext);
        /**
        * public Context getDPluginContext() {
        return this.mDPluginContext == null ? this.mApplicationContext : this.mDPluginContext;
        }
        用于这里返回的是mApplicationContext ,所以要开启新的任务栈Intent.FLAG_ACTIVITY_NEW_TASK
        */
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mContext.startActivity(intent);
    }

为啥要写个小笔记呢,完全是为了服务那些非原生开发者,要是Android开发者,这些都是基础

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Jiang_Rong_Tao/article/details/103923920

智能推荐

《谷歌和亚马逊如何做产品》读书笔记之五:赢在测试_shipping greatness:practical lessons on building a-程序员宅基地

文章浏览阅读721次。《谷歌和亚马逊如何做产品》读书笔记之五:赢在测试_shipping greatness:practical lessons on building and launching outstanding s

C语言|putchar()与printf()函数的区别_putchar和printf的区别-程序员宅基地

文章浏览阅读2.5k次,点赞21次,收藏13次。简单来说:putchar 只可以打印单个的字符 即 'A' 但是printf 可以打印各种类型 单个字符(%c),字符串(%s) 十进制整数(%d)换言之:printf 可以输出一个任意的字符串,还可以有参数,而putchar只能输出一个字符。并且,当打印单个字符的时候, printf("%c",'A') 相当于 putchar('A');简言之:printf 更牛逼,可以打印各种类型但是getchar,putchar只是处理字符的函数..._putchar和printf的区别

wordpress 文章页面 (single.php)_wordpress中基于类别id的多个single.php-程序员宅基地

文章浏览阅读2.1k次。<?php$id = get_the_ID();// 文章当前的 id$title = get_post($id)->post_title;$my_data = get_the_time('Y-m-d');$my_content = get_post($id)->post_content;?>_wordpress中基于类别id的多个single.php

需求分析说明书SRS-程序员宅基地

文章浏览阅读1.3w次,点赞16次,收藏137次。软件需求分析说明书1.引言1.1编写目的本文档的目的是详细地介绍停车场管理系统所包含的需求,以便客户能够确认产品的确切需求以及开发人员能够根据需求设计编码,以下叙述将结合文字描述,流程图来描述停车场管理系统的功能,性能,运行环境。1.2系统概述使用停车场管理系统,在停车场的出入口设置一套出入口管理设备,使停车场形成一个相对封闭的场所,用户进出停车场只需将注册个人信息并扫描二维码,系统即能瞬时完成检验、记录、核算、收费等工作,挡车道闸自动启闭,方便快捷地进行着停车场的管理。对出口管理员来讲,_需求分析说明书

php 与 oracle11g 的连接和基本操作_php oracle11-程序员宅基地

文章浏览阅读3.2k次。php 与 oracle11g 的连接和几百年操作<?php $conn = ocilogon('system','Oracle123','127.0.0.1:1521/orcl'); if (!$conn) { $Error = oci_error(); print htmlentities($Error['message']); exit; } el_php oracle11</div>

Spring Data JPA的自动更新_spring data jpa 更新数据-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏6次。公司的项目后台架构是SpringBoot + Spring Date JPA,采用MySQL数据库。在工作刚开始时就遇到了一个奇怪的现象。在采用Date JPA查询完数据库之后,若改变了查询出的对象属性,那么数据库就会自动更新。比如查询出一个studentPO的name为“小明”,然后进行了一步studentPO.setName("小红")操作,再返回给前台,此时的数据库中的这个studentPO的name就会自己变成小红。但是我并没有调用updateBean方法去主动的更新这个对象,为什么它就会自动更新了_spring data jpa 更新数据

随便推点

基于STM32F407控制SG90舵机低速旋转程序_基于stm32控制舵机匀速旋转pid-程序员宅基地

文章浏览阅读4.3k次,点赞7次,收藏82次。基于STM32F407控制SG90舵机低速旋转程序最近学习STM32控制SG90舵机学习过程中发现舵机转速过快,无法平缓的转向指定角度在网上查找资料具体了解到舵机的转速与舵机的目标角度和舵机的当前角度的差值呈正相关下面这张图举个例子假设舵机在当前为90° 我们设置目标角度为180°舵机的转速=|(180°-90°)|*k, k为比例系数也就是舵机距离目标角度越近转速越慢,距离目标角度越远转速越快,所以我们看到舵机的起步一般非常快现在大概知道了转速快的原因,我的目标是让舵机可以平缓的运_基于stm32控制舵机匀速旋转pid

Linux 网络编程—— libnet 使用指南_libnet 发送raw4报错-程序员宅基地

文章浏览阅读7.8k次,点赞6次,收藏31次。概述通过《原始套接字实例:发送 UDP 数据包》的学习,我们组 UDP 数据包时常考虑字节流顺序、校验和计算等问题,有时候会比较繁琐,那么,有没有一种更简单的方法呢?答案是:借助 libnet 函数库。libnet 是一个小型的接口函数库,主要用 C 语言写成,提供了低层网络数据包的构造、处理和发送功能。libnet 的开发目的是:建立一个简单统_libnet 发送raw4报错

php5.2 中新的输入检查函数-程序员宅基地

文章浏览阅读178次。 在PHP 5.2最新版本中,在对输入检查的函数方面,多了新的功能,默认是开启的,减少了很多写代码的工作量,在IBM DW的http://www.ibm.com/developerworks/cn/opensource/os-php-v522/index.html上有很好的介绍,下面笔记并补充之过滤扩展功能有两种过滤器:Sanitizing 和 Logical。Sanitizing 过滤器只是..._php输入函数

android 按钮设计中state_selected属性-程序员宅基地

文章浏览阅读3.6k次。在android中,如果搞几个tab,然后想做到当移动到某个TAB的按钮上时,图片变一个颜色,比如为图片A,移走时,图片变成另外一个,可以设计如下: 也就是说,使用state_selected="true" 表明当被选择时,使用哪张图片了,很简单..._state_selected

SVN使用笔记_svn no such table:wcroot-程序员宅基地

文章浏览阅读809次。克隆仓库svn checkout http://www.example.com/reperstory查看仓库信息svn info查看提交记录svn log切换仓库远程地址svn switch --relocate 旧地址 新地址使用SVN尽量用可视化工具,命令行不如Git好用。_svn no such table:wcroot

语法规则_无效的表达式项public-程序员宅基地

文章浏览阅读699次。俗话说,无规矩不成方圆;C#是一种编程语言,当然也有自己的语法规则和命名规则,如同学习外语的语法一样。先说说变量的命名规则吧,一个变量的名字如同人的名字一样都用一定的意义,例如定义钢笔的价格: double x=12.3,和double pen_price=12.35,两者相_无效的表达式项public