uniapp安卓原生插件

安卓原生插件开发用于uniapp

参考: https://blog.csdn.net/similing/article/details/101770348#1__14

(因为我不是主java开发或者安卓开发),有些地方也写的不太好(多多包含)

这里只介绍了基于weex拓展Android的module模式,也就是不会使用到原生ui控件

个人业务原因只需要通过原生sdk获取数据就行了( 请大家有意思开发原生插件得耐心看完哈 )

开发插件

官网参考文案:https://ask.dcloud.net.cn/article/35416

个人觉得仔细咀嚼一下官方文档挺好得。

在这里插入图片描述

这些准备东西就自己配置啦。还有就是weex这里。我就看了一下对Android的拓展(有个了解就好了)

贴出地址

  • https://weex.apache.org/zh/docs/api/android-apis.html

  • https://weex.apache.org/zh/guide/extend/extend-android.html

因为官方文案对开发前得步骤都挺详细了,所以我这里不做阐述了

这里演示一个原生插件和uniapp通信得demo

  1. 新建得一个插件目录

在这里插入图片描述

在这里插入图片描述

我把uniapp的包放到libs文件夹下了。因为试过一次在uniapp自定义底座得时候找不到自己写的插件

  1. 根据官方文案配置好相应的文件

在这里插入图片描述

import com.taobao.weex.annotation.JSMethod;
import com.taobao.weex.bridge.JSCallback;
import com.taobao.weex.common.WXModule;

import java.util.HashMap;
import java.util.Map;

public class testModule extends WXModule {

    @JSMethod( uiThread = false )
    public void getData(JSCallback callback) {
        String name = "mike";
        int age = 18;
        Map<String, Object> map = new HashMap<>();
        map.put("name", name);
        map.put("age", age);
        callback.invoke(map);
    }
}

贴出代码方便大家不同敲了。

  1. 插件的一个类

在这里插入图片描述

  1. 然后在HbuilderX中写uniapp

    <template>
    	<view class="content">
    		<button type="primary" plain @click="handleClick">click me</button>
    		<button type="default" @click="handleClick">button</button>
    	</view>
    </template>
    
    <script>
    const AModule = uni.requireNativePlugin('testModule');
    export default {
    	data() {
    		return {};
    	},
    	onLoad() {},
    	methods: {
    		handleClick() {
    			AModule.getData(res => {
    				uni.showToast({
    					title: JSON.stringify(res),
    					icon: "none"
    				})
    			});
    		}
    	}
    };
    </script>
    
    <style></style>
    

开发完

  1. 需要在app下的build.gradle中加入开发的uniapp插件

在这里插入图片描述
2. app/src/main/assets/dcloud_uniplugins.json中注册插件

  • 有两种方式注册插件

    https://ask.dcloud.net.cn/article/35416

在这里插入图片描述
plugins里面插件的name属性对应你在uniapp中引用的原生插件名字

在这里插入图片描述

这里有两种方式将uniapp和刚刚写的插件连接起来

  1. 在HbuilderX中把刚刚写得项目本地打包(具体操作如下

在这里插入图片描述
生成本地app打包资源。

接着控制台下面就会有进度提示啦。(这里注意下manifest.json下面得appid)。

必须填,不然打包不成功得

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-22eAiLzh-1571628581337)(images/)]

  • 获取到打包文件后

在这里插入图片描述
这个文件夹直接复制或者剪切到该图片下的文件下

在这里插入图片描述

  • 注册插件(修改dcloud_uniplugins.json)

    在这里插入图片描述

    还需要更改一下如下文件

    在这里插入图片描述

    这里是设置应该启动那一个app项目得吧,没猜错得话

![在这里插入图片描述](https://img-blog.csdnimg.cn/20191021113715811.png)

然后就可以点击运行了。模拟器我是直接使用android studio自带得(个人感觉新版挺好用得)

在这里插入图片描述

  1. 第二种方法:打包原生插件,放在uniapp中运行

    具体打包方式,官方也讲的很清楚了.

在这里插入图片描述

具体流程就是
  1. 按照流程选择Gradle来打包插件

    在这里插入图片描述

    在这里插入图片描述

    双击**assembleRelease**就会运行了

  2. 打包的文件在那里?

    在这里!

    在这里插入图片描述

    在HBuilderX中配置原生插件

在这里插入图片描述

  • 这里我把刚刚打包出来的amodule-release文件重命名了

  • 首先在项目根目录下创建一个nativeplugins文件夹

  • 每添加一个插件,就新建一个文件夹

  • 例如我这里是有一个原生插件testModule

  • 插件目录下文件存放androidios打包好的插件

  • 插件根目录下要放一个package.json文件

    具体配置参考 https://ask.dcloud.net.cn/article/35414

    package.json文件所示

    在这里插入图片描述
    那么就会在项目得manifest.json文件看到

    在这里插入图片描述
    然后就在运行的时候选择自定义底座,底座打包好之后,就再点一次运行。底座选择自定义得就可以运行了。

    在这里插入图片描述

    我太水了。后面得选项截图不了。

    运行图(点击按钮之后)

    在这里插入图片描述

    祝大家都可以开发成功啊哈

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值