uniapp原生插件开发调用第三方SDK

这篇具有很好参考价值的文章主要介绍了uniapp原生插件开发调用第三方SDK。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • uniapp安卓官方SDKAndroid 离线SDK - 正式版 | uni小程序SDK

  • 官方uni原生插件开发教程(android)网址:简介 | uni小程序SDK

第一步,开发环境的准备

  1. 下载uniapp安卓官方SDK待后面使用,解压完成如下图所示。

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
  1. JAVA环境 jdk,打开cmd输入java -version查看自己的jdk版本,官方文档中提示jdk版本应在1.7及以上,如果达不到标准,自行下载相关版本配置好环境变量即可。

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
  1. Android Studio 下载,下载地址下载 Android Studio 和应用工具 - Android 开发者  |  Android Developers

第二步,创建自己的项目

打开AndroidStudio,在菜单栏选择File>New>New Project,新建自定义项目

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

填写项目名称点击完成

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

创建完成后为了方便使用我们转为Project视图,我这里是汉化后的

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

接下来创建模板,点击菜单栏选择File>New>New Module

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

选择Android Library,填写module name点击完成

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

创建完毕后如图所示

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

配置刚创建的Module(testplugin)的build.gradle信息

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

将dependencies下默认生成的依赖注释掉,添加uni-app所需库依赖


//必须添加的依赖
compileOnly 'androidx.recyclerview:recyclerview:1.0.0'
compileOnly 'androidx.legacy:legacy-support-v4:1.0.0'
compileOnly 'androidx.appcompat:appcompat:1.0.0'
compileOnly 'com.alibaba:fastjson:1.2.83'
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

导入官方提供的uni插件原生项目

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

将UniPlugin-Hello-AS下的app>libs下的文件复制到自己项目的app>libs

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

回到刚刚创建的testplugin的build.gradle中,进行导入aar需要的配置操作,在dependencies内添加


compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs')
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

然后点击Sync Now进行同步处理

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

第三步,原生插件的开发

在我们所创建的module(testPlugin)>src>main>java>com.test.testPlugin创建类TestModule

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
  • Module 扩展必须继承 UniModule 类

  • 扩展方法必须加上@UniJSMethod (uiThread = false or true) 注解。UniApp 会根据注解来判断当前方法是否要运行在 UI 线程,和当前方法是否是扩展方法。

我只做了最简单的返回插件调用成功的语句,可根据自己的业务逻辑自行编写


package com.test.testplugin;

import com.alibaba.fastjson.JSONObject;

import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;

public class TestModule extends UniModule {
    @UniJSMethod(uiThread = false)
    public void open(UniJSCallback callback) {
        JSONObject data = new JSONObject();
        data.put("code","插件调用成功");
        callback.invoke(data);
    }
}

第四步,注册插件

在app>src>main目录下创建assets文件夹

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

在app>src>main>assets目录下创建dcloud_uniplugins.json文件

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

将官方dcloud_uniplugins.json复制过来进行修改

dcloud_uniplugins.json说明

  • nativePlugins: 插件跟节点 可存放多个插件

  • hooksClass: 生命周期代理(实现AppHookProxy接口类)格式(完整包名加类名)

  • plugins: 插件数组

  • name : 注册名称

  • class : module 或 component 实体类完整名称

  • type : module 或 component类型。


{
	"nativePlugins":[
		{
		    "hooksClass":"uni.dcloud.io.uniplugin_richalert.apphooks",
		    "plugins":[
		    {
		        "type":"module",
		        "name":"DCloud-RichAlert",
		        "class":"uni.dcloud.io.uniplugin_richalert.RichAlertModule"
		    }
		    ]
		}
	]}
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

第五步,打包插件

打包插件到uniapp中使用,选择右侧Gradle>testplugin>Tasks>other>assembleRelease,双击assembleRelease等待系统module的arr文件。

注意:官方文档中是选择Gradle--->插件module--->Tasks--->build--->assembleRelease编译module的aar文件

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

成功后在testPlugin>build>outputs>aar目录下就可以找到相关插件了

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

第六步,HBuilderX导入和使用本地插件

新建uniapp项目如图所示

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

按照官方目录,创建目录nativeplugins>插件文件夹名称(最好和dcloud_uniplugins.json文件里填写的name一样)>android目录下,将刚才打包的插件放到android下,创建package.json文件,放入到插件文件夹目录下。

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

配置package.json,官方描述uni小程序SDK

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

注意:插件标识id必须和name一致,plugins下的class是注册插件的类名要填对(同dcloud_uniplugins.json文件中的class一致)。配置文件为 json 格式,不能有注释,否则会解析失败

最后在manifest.json下选择我们开发的插件点击确认

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

在uniapp项目中获取插件

通过使用uni.requireNativePlugin获取插件对象。

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

第五步,运行项目

1.通过在线打包制作自定义基座来运行

选择运行>运行到手机或模拟器>制作自定义调试基座

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

我这里使用自用证书(证书没有的可自行申请),填写完成后点击打包

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

打自定义调试基座成功后,运行项目选择自定义调试基座

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

然后运行到Android App基座

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

运行后点击按钮调用插件方法获取到了插件返回值,调用插件成功,接下来可以进行自己的业务开发

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

上述运行是离线打包制作自定义基座来运行也可以通过AndroidStudio来运行条件基本一致,所以前期先把共同条件配置好

2.通过AndroidStudio来运行

配置AndroidManifest.xml,app>src>main>AndroidManifest.xml

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

添加内容到application节点,复制官方文档中的配置。

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
<activity
            android:name="io.dcloud.PandoraEntry"
            android:configChanges="orientation|keyboardHidden|keyboard|navigation"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:hardwareAccelerated="true"
            android:theme="@style/TranslucentTheme"
            android:screenOrientation="user"
            android:windowSoftInputMode="adjustResize"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <action android:name="android.intent.action.VIEW" />
                <data android:scheme=" " />
            </intent-filter>
        </activity>
        <activity
            android:name="io.dcloud.PandoraEntryActivity"
            android:launchMode="singleTask"
            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard|smallestScreenSize|screenLayout|screenSize|uiMode"
            android:hardwareAccelerated="true"
            android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
            android:screenOrientation="user"
            android:theme="@style/DCloudTheme"
            android:windowSoftInputMode="adjustResize">
        </activity>

如下图在build.gradle(app)中添加引用资源

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation fileTree(include: ['*.aar'], dir: 'libs')
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation "com.facebook.fresco:animated-gif:1.13.0"
//基座需要必须添加
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.alibaba:fastjson:1.1.46.android'

uni-app配置时需要在build.gradle中添加aaptOptions配置,在android中配置

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档


aaptOptions {
        additionalParameters '--auto-add-overlay'
        ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
    }

然后点击右上角的Sync Now。然后回到uniapp项目中,如图在发行选项>原生APP-本地打包(L)中选择生成本地打包App资源(R)

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

成功后找到如下所示文件

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

回到Android studio中在assets文件夹下创建apps文件夹,将本地打包资源处理后的文件(我的是__UNI__D95B2DF)拷贝到apps文件夹下。

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

然后在build.gradle(app)下添加,implementation project(':testPlugin')用来引入本地插件

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

将下载的SDK在目录Android-SDK@3.6.18.81676_20230117\SDK\assets中找到data文件夹,拷贝到app>src>main>assets下

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

自定义基座的配置

在app目录下,将assets下apps文件夹中的manifest.json文件和data文件夹中的dcloud_control.xml文件打开,确保manifest.json中的id和dcloud_control.xml中的appid一致。并设置根节点的debug和syncDebug为true

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

在app>src>main>res>values配置strings.xml文件,将manifest.json文件中的name配置到strings.xml文件中

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

登陆dcloud开发者中心找到我们创建的uniapp项目,打开项目点击安卓云端证书-创建证书,等待生成证书。

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

生成证书后点击下载证书我们将下载好的证书重命名为demoKeys.keystore,将在Android studio中自己项目的app下创建文件夹key>testaline,将demoKeys.keystore放在此目录下如下图所示

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

然后在dcloud中点击各平台信息点击修改

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

包名为build.gradle(app)文件中android下的defaultConfig下的applicationId。SHA1、MD5、SHA256的值在刚申请的证书详情中,注意对应

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

修改后点击保存,创建离线打包Key

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

在Android studio项目中app>src>main>AndroidManifest.xml文件中添加代码,android:value的值是我们创建的appkey,将第二张图红色框中的appkey复制进去就行。

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

在build.gradle(app)文件中添加如下代码,红线框为需要添加部分

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

然后切换为app,点击运行到你连接的设备就行了,我这里是运行到雷电模拟器

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

插件开发成功接下来可以进行自己的业务开发,调用第三方SDK。我涉及的是调用SDK获取称重数据,将SDK导入module下的libs目录下

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

在build.gradle(:testPlugin)中引入jar文件

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

然后编写自己的业务逻辑,原本怎么调用SDK的就怎么调用。

关于获取上下文

在module下新建MyApplication类,输入下列代码。然后将lib5+导入到libs下

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

import android.content.Context;
import io.dcloud.application.DCloudApplication;
public class MyApplication extends DCloudApplication{
    public static Context context;
    public static Context getContext() {
        return  context;
    }
    @Override
    public void onCreate() {
        super.onCreate();
        context = this;

    }
}
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

在AndroidMainfest.xml中配置

uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档
uniapp怎么引用第三方sdk,uni-app,android,android studio,前端,Powered by 金山文档

参考文章:

  • uni原生插件开发流程一览—Module扩展

  • uniapp开发android原生插件(二):引入依赖、开发插件 - 学海无涯网文章

小白分享自己的开发过程,如有错误请各位大佬指出。文章来源地址https://www.toymoban.com/news/detail-553758.html

到了这里,关于uniapp原生插件开发调用第三方SDK的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytest 第三方插件

    目录 前言: 顺序执行:pytest-ordering 失败重试:pytest-rerunfailures 并行执行:pytest-xdist pytest 是一个广泛使用的 Python 测试框架。它具有强大的测试运行器、测试驱动开发和测试结果可视化等功能。除此之外,pytest 还支持许多第三方插件,这些插件可以为测试带来更多的便利和

    2024年02月16日
    浏览(31)
  • AndroidStudio调用第三方so库

    背景         最近公司设备换了新的触摸屏(为I2C接口),该触摸屏有个app,app中可以显示触摸屏固件的版本。我需要做的是在自己的app中读取到触摸屏固件版本。         反编译了apk,得到了源码,发现对方app是通过jni调用so库的方式获取到的触摸屏固件版本。所以

    2024年04月26日
    浏览(26)
  • 安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性

    DW + PHPStorm + PhpStudy + Navicat Premium DW : HTMLJSCSS开发 PHPStorm : 专业PHP开发IDE PhpStudy :Apache MYSQL环境 Navicat Premium: 全能数据库管理工具 1、数据库名,数据库表名,数据库列名 2、数据库数据,格式类型,长度,键等 PHP函数:连接,选择,执行,结果,关闭等 参考:https://www.runoo

    2024年02月17日
    浏览(40)
  • 微信小程序使用第三方插件

    这里是使用npm方式安装第三方插件: 1,首先新建一个微信小程序项目并找到该项目的文件地址, 如下图: 该项目中我以安装 weui插件为例进行演示。在上图中的目录中打开PowerShell窗口,先要进行npm 初始化,输入npm help init  ,默认回车下一步下一步就ok; 2,输入命令:npm in

    2024年02月08日
    浏览(41)
  • JMeter进阶-常用第三方插件讲解

    准备工作: 1.最新版本的JMeter是默认不展示插件管理器的,所以我们需要手动添加插件管理器 2.下载地址:https://jmeter-plugins.org/install/Install/,下载插件plugins-manager.jar,然后将jar包放在apache-jmeter-x.x.xlibext路径下,重新打开jmeter客户端即可在“选项”下面可以看到了Plugins-Ma

    2023年04月08日
    浏览(36)
  • 微信小程序第三方插件申请

    记录下小程序申请插件的页面,之前自己找了很久,方便后续使用 1. 先找到自己需要的第三方插件的appid 2. 登录微信公众平台后台(mp.weixin.qq.com) 3. 打开小程序插件页面          https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=插件appid         如小程序直播的页面就是:http

    2024年02月09日
    浏览(30)
  • 我调用第三方接口遇到的13大坑

    在实际工作中,我们经常需要在项目中调用第三方API接口,获取数据,或者上报数据,进行数据交换和通信。 那么,调用第三方API接口会遇到哪些问题?如何解决这些问题呢? 这篇文章就跟大家一起聊聊第三方API接口的话题,希望对你会有所帮助。   一般我们在第一次对接

    2023年04月16日
    浏览(42)
  • 仅仅是调用第三方接口那么简单吗?

    最近有个项目需要本地处理之后,然后调用第三方接口,本来开始觉得很简单得事情,不就是调用第三方接口吗?但是却一波三折。 首先有了下面的第一版的设计。 这个设计很简单,也是最容易想到的。主要有下面几步 1、本地处理; 2、调用第三方接口; 3、本地日志打印

    2024年02月06日
    浏览(47)
  • SpringBoot案例 调用第三方接口传输数据

    最近再写调用三方接口传输数据的项目,这篇博客记录项目完成的过程,方便后续再碰到类似的项目可以快速上手 项目结构: 这里主要介绍HttpClient发送POST请求工具类和定时器的使用,mvc三层架构编码不做探究 pom.xml application-dev.yml Constast utils scheduled 该定时任务每10秒执行一

    2024年02月12日
    浏览(40)
  • C#--调用Python(包含第三方库)

    参考链接 可以很好的支持第三方库。 推荐这个,经本人验证这个很好用。 后文 2. 详细使用。 如果使用第三方库就放弃这个吧,真的用不了,使用时报各种错。 如果只是标准库,可以用这个。 只需要在 nuget 里装上 IronPython 和 IronPython.StdLib 即可。 使用参考链接 1.3.1 示例演

    2024年02月07日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包