国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp集成Android原生sdk

這篇具有很好參考價(jià)值的文章主要介紹了uniapp集成Android原生sdk。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

最近公司有個(gè)項(xiàng)目,需要調(diào)用客戶提供的sdk掃描rfid,項(xiàng)目又是用uni開(kāi)發(fā)的,客戶提供的sdk只有Java版本,我發(fā)現(xiàn)uni是提供集成原生sdk的,所以研究了一下怎么使用,并記錄下來(lái)過(guò)程。

準(zhǔn)備

SDK 文件

下載

首先下載uniapp原生插件開(kāi)發(fā)SDK,下載地址見(jiàn)App離線SDK下載

uniapp集成Android原生sdk

?

?解壓

解壓后相關(guān)文件如下圖,我們只需要用到里面的示例工程HBuilder-HelloUniApp來(lái)進(jìn)行插件開(kāi)發(fā)就好

uniapp集成Android原生sdk

示例工程導(dǎo)入

  • ?打開(kāi)Android Studio,導(dǎo)入上邊標(biāo)出的工程

插件開(kāi)發(fā)

Module?創(chuàng)建

選擇新建 Module

uniapp集成Android原生sdk

uniapp集成Android原生sdk?

?選擇Android Library,然后下一步

文件配置

build.gradle文件打開(kāi)

將編輯器文件視圖切換到Project,選擇我們剛創(chuàng)建的Module目錄,然后打開(kāi)其根目錄下的build.gradle文件
uniapp集成Android原生sdk

?注意,后邊會(huì)顯示是哪個(gè)的,這里選我們剛才新建的rfid的build.gradle

?build.gradle文件配置

加入以下配置,dependencies里面的初始配置可以刪除或注釋掉,然后點(diǎn)擊同步


android {
    sourceSets {
        main(){
            jniLibs.srcDirs = ["libs"]
        }
    }
}

//導(dǎo)入aar需要的配置
repositories {
    flatDir {
        dirs 'libs'
    }
}
 
dependencies {
    //必須添加的依賴
    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.1.46.android'
 
    compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs')
}

配置混淆文件

打開(kāi)Module根目錄下的proguard-rules.pro文件,在最后一行末尾加入以下代碼

?

-keep public class * extends io.dcloud.feature.uniapp.common.UniModule{*;}

?

?

創(chuàng)建Module類

新建類文件

在Module的項(xiàng)目文件夾下創(chuàng)建我們需要的類 這里我新建了RFIDTool,必須繼承UniModule

擴(kuò)展方法必須加上@UniJSMethod (uiThread = false or true) 注解。UniApp 會(huì)根據(jù)注解來(lái)判斷當(dāng)前方法是否要運(yùn)行在 UI 線程,和當(dāng)前方法是否是擴(kuò)展方法。
UniApp是根據(jù)反射來(lái)進(jìn)行調(diào)用 Module 擴(kuò)展方法,所以Module中的擴(kuò)展方法必須是 public 類型。
?

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

public class RFIDTool extends UniModule {


    @UniJSMethod(uiThread = true)
    public void doTest(UniJSCallback callback){
        try {
            String result = "doTest success" ;
            callback.invoke(result);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

?數(shù)據(jù)返回

數(shù)據(jù)使用UniJSCallback結(jié)果回調(diào),具體是使用invoke調(diào)用JavaScript的回調(diào)方法返回?cái)?shù)據(jù)。更多可以參考官方文檔,invoke需要傳入一個(gè)Object類型的返回?cái)?shù)據(jù),:

插件調(diào)試

證書申請(qǐng)

獲取 appid

打開(kāi)uniapp項(xiàng)目,在根目錄下找到manifest.json文件,在基礎(chǔ)配置中獲取到appid

證書生成?

  • 在uniapp 開(kāi)發(fā)者后臺(tái)應(yīng)用管理找到對(duì)應(yīng)項(xiàng)目點(diǎn)擊名稱進(jìn)去
  • ?選擇證書管理,點(diǎn)擊創(chuàng)建證書,等待生成成功就好
  • ?uniapp集成Android原生sdk

?生成成功后,刷新頁(yè)面,下載證書,放入原生插件項(xiàng)目的app目錄下

uniapp集成Android原生sdk

?

證書配置

證書詳情

在后臺(tái)證書管理頁(yè)面,點(diǎn)擊證書詳情獲取證書信息以及證書密碼

uniapp集成Android原生sdk

?配置

?在插件項(xiàng)目app目錄下的build.gradle文件中,將信息依次填入文件中的signingConfigs.config配置項(xiàng),然后點(diǎn)擊右上角同步完成配置,具體如圖

?uniapp集成Android原生sdk

?插件配置
注冊(cè)插件
在插件項(xiàng)目的app\src\main\assets目錄下打開(kāi)dcloud_uniplugins.json,在nativePlugins配置項(xiàng)中添加一項(xiàng)插件配置,type必須為module,因?yàn)槲覀兊牟寮莔odule類型;name統(tǒng)一跟隨插件名;具體如下所示:

{
  "nativePlugins": [
    {
      "hooksClass": "",
      "plugins": [
        {
          "type": "module",
          "name": "rfid",
          "class": "cn.com.vs.rfid.tools.RFIDTool"
        }
      ]
    }
  ]
}

引入插件

在插件項(xiàng)目app目錄下的build.gradle文件中,引入剛剛注冊(cè)的module

離線打包Key

sha1值獲取

在證書管理頁(yè)面,證書詳情里面獲取證書sha1值

從Android項(xiàng)目中獲取包名

?獲取離線打包key

  • 在uniapp應(yīng)用后臺(tái)各平臺(tái)信息頁(yè)面,將上兩步獲取的值填入對(duì)應(yīng)輸入框,然后點(diǎn)擊保存,如圖:

uniapp集成Android原生sdk

?

  • ?保存后會(huì)生成離線打包Key如下:
  • uniapp集成Android原生sdk

?uniapp集成Android原生sdk

?

?配置離線打包Key

在插件項(xiàng)目app\src\main目錄下的AndroidManifest.xml文件中,將上一步生成的離線打包key配置到相應(yīng)位置,如圖

uniapp集成Android原生sdk

?然后打包插件

插件包、APP以及uniapp項(xiàng)目的androidSDK版本應(yīng)該統(tǒng)一一下,避免后續(xù)編譯打包出錯(cuò),如圖:

uniapp集成Android原生sdk

?

開(kāi)始編譯?

打開(kāi)Android Studio,在插件項(xiàng)目中,打開(kāi)右上角Gradle欄目,選擇插件開(kāi)發(fā)項(xiàng)目,選擇插件打開(kāi),依次點(diǎn)開(kāi)Tasks-other,然后雙擊assembleRelease即可進(jìn)行插件編譯,如圖:

uniapp集成Android原生sdk

?

獲取插件

編譯成功后,就可以在插件目錄的build/outputs/arr目錄下找到編譯好的插件

引入插件

創(chuàng)建目錄

在uniapp項(xiàng)目中創(chuàng)建nativeplugins目錄,然后根據(jù)插件名創(chuàng)建插件目錄,再在其下一級(jí)創(chuàng)建插件相應(yīng)系統(tǒng)目錄,然后將插件復(fù)制到該目錄,如圖:

uniapp集成Android原生sdk

?這里需要注意一點(diǎn),如果自己開(kāi)發(fā)的原生sdk中引用了jar包,可以直接打到arr中,如果sdk中引用了arr,需要放在和sdk相同的目錄中,并且記得在build中配置

uniapp集成Android原生sdk

?

創(chuàng)建插件包配置文件
在包目錄下創(chuàng)建package.json包信息文件,用于配置包信息,具體配置如下:

name 和 id建議與插件名統(tǒng)一
plugins中的配置與插件配置-注冊(cè)插件步驟中所填一樣
dependencies:如果原生插件引入了第三方SDK,需要在此參數(shù)中配置,具體可以參考相關(guān)官方文檔dependencies
package.json:

{
    "name": "rfid",
    "id": "rfid-module",
    "version": "1.1",
    "description": "插件描述信息",
    "_dp_type":"nativeplugin",
    "_dp_nativeplugin":{
        "android": {
            "plugins": [
                {
                    "type": "module",
                    "name": "rfid-module",
                    "class": "cn.com.vs.rfid.tools.RFIDTool"
                }
            ],
			
            "integrateType": "aar",
            "compileOptions": {  
                "sourceCompatibility": "1.8",
                "targetCompatibility": "1.8"
            },
            "minSdkVersion": "23",
            "useAndroidX": false,   
            "permissions": [
                "android.permission.BLUETOOTH",
				"android.permission.MANAGE_EXTERNAL_STORAGE",
				"android.permission.WRITE_EXTERNAL_STORAGE"
            ],
            "parameters": {
                
            }
        }
    }
}

引入插件

在uniapp項(xiàng)目的manifest.json文件中添加配置好的插件,至此引入完成,如圖:

uniapp集成Android原生sdk

?

打包自定義基座

新建基座打包

如圖,依次點(diǎn)擊三者進(jìn)行自定義基座打包配置

uniapp集成Android原生sdk

?

?基座打包配置

如圖三個(gè)輸入框,分別填入前面在uniapp后臺(tái)獲取的證書以及相關(guān)信息,然后執(zhí)行打包就好

uniapp集成Android原生sdk

?

基座運(yùn)行測(cè)試?

選擇運(yùn)行基座

運(yùn)行基座類型選擇自定義基座

uniapp集成Android原生sdk

?

運(yùn)行自定義基座

?基座打包成功后,運(yùn)行自定義基座到手機(jī)測(cè)試uniapp集成Android原生sdk

?到這里,基本上就簡(jiǎn)單的完成了原生sdk的開(kāi)發(fā)與配置

本文借鑒了uniapp Android 原生插件開(kāi)發(fā)(Module 擴(kuò)展為例·2022)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-406112.html

到了這里,關(guān)于uniapp集成Android原生sdk的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 原生Android與uniapp開(kāi)發(fā)的H5混合開(kāi)發(fā)

    原生Android與uniapp開(kāi)發(fā)的H5混合開(kāi)發(fā)

    vue版本選擇2.0 ?記住一點(diǎn),打包H5前修改配置,否則在Android中打開(kāi)會(huì)白屏,修改方式如下 打包成H5,打包后可以在瀏覽器打開(kāi)確保有內(nèi)容 assets文件夾沒(méi)有就自己建 xml布局文件處加入一個(gè)webview標(biāo)簽 Activity的 onCreate周期加入如下代碼 運(yùn)行項(xiàng)目就可以看到uniAPP的頁(yè)面了

    2024年02月21日
    瀏覽(22)
  • uniapp 原生安卓開(kāi)發(fā)插件(module),以及android環(huán)境本地調(diào)試(一)

    uniapp 原生安卓開(kāi)發(fā)插件(module),以及android環(huán)境本地調(diào)試(一)

    由于uniapp 框架的局限先,有很多功能不能如原生android開(kāi)發(fā)使用順暢,因此,需要使用插件進(jìn)行輔助,再由uniapp引入插件,使得功能完善。廢話不多說(shuō),直接上教程!覺(jué)得有用的麻煩點(diǎn)個(gè)贊吧! uniapp 項(xiàng)目(也就是你自己的項(xiàng)目) 下載 安裝JDK (java的JDK)jdk1.8 下載 安裝 andr

    2024年02月06日
    瀏覽(29)
  • uniapp Android原生插件開(kāi)發(fā)和離線打包調(diào)試看這篇就夠了!(保姆級(jí)手把手教學(xué))

    uniapp Android原生插件開(kāi)發(fā)和離線打包調(diào)試看這篇就夠了!(保姆級(jí)手把手教學(xué))

    此文章最適合第一次開(kāi)發(fā)原生插件并且無(wú)原生開(kāi)發(fā)經(jīng)驗(yàn)的攻城獅! uni-app 官方文檔地址:uni原生插件開(kāi)發(fā)教程 原生插件必備離線SDK下載:Android 離線SDK - 正式版 要擁有JAVA環(huán)境 jdk1.8 版本,其他版本根據(jù)情況自我調(diào)整 想必讀者在看此文章之前電腦就有HBuilderX和Android Studio開(kāi)發(fā)工

    2024年02月10日
    瀏覽(54)
  • 基于Python實(shí)現(xiàn)Midjourney集成到(個(gè)人/公司)平臺(tái)中

    基于Python實(shí)現(xiàn)Midjourney集成到(個(gè)人/公司)平臺(tái)中

    目前Midjourney沒(méi)有對(duì)外開(kāi)放Api,想體驗(yàn)他們的服務(wù)只能在discord中進(jìn)入他們的頻道進(jìn)行體驗(yàn)或者把他們的機(jī)器人拉入自己創(chuàng)建的服務(wù)器中;而且現(xiàn)在免費(fèi)的也用不了了,想使用就得訂閱。本教程使用midjourney-api這個(gè)開(kāi)源項(xiàng)目,搭建Midjourney相關(guān)接口服務(wù),以集成到個(gè)人平臺(tái)中~ 本文

    2024年02月20日
    瀏覽(19)
  • 云原生明星創(chuàng)業(yè)公司 Weaveworks 倒閉了,GitOps 該何去何從?

    云原生明星創(chuàng)業(yè)公司 Weaveworks 倒閉了,GitOps 該何去何從?

    自從 2009 年 DevOps 面世以來(lái),xOps 的潘多拉魔盒就被打開(kāi)了,AIOps、DataOps、DevSecOps、BizDevOps,當(dāng)然還有最近幾年比較火熱的 GitOps。但是很不幸的是,就在龍年新春前夕,GitOps 理論提出者—— Weaveworks 倒下了。 時(shí)間回到 2 月 5 日,就在大家期待春節(jié)長(zhǎng)假的時(shí)候,一則 Weaveworks

    2024年02月22日
    瀏覽(18)
  • 深入云原生—基于KubeWharf深度剖析-以公司實(shí)際應(yīng)用場(chǎng)景為例深度解讀

    深入云原生—基于KubeWharf深度剖析-以公司實(shí)際應(yīng)用場(chǎng)景為例深度解讀

    各位好,這里是難忘,本人對(duì)云原生也是研究了2年多了,算是略有所得,本次就來(lái)深入云原生—基于KubeWharf深度剖析場(chǎng)景與解讀。我們需要先了解一下 KubeWharf,可能很多人都感覺(jué)到有點(diǎn)陌生吧,下面我們來(lái)一起學(xué)習(xí)! KubeWharf?是字節(jié)跳動(dòng)基礎(chǔ)架構(gòu)團(tuán)隊(duì)在對(duì)?Kubernetes?進(jìn)行了大

    2024年01月23日
    瀏覽(29)
  • 記錄一下公司uniapp項(xiàng)目安裝node_modules失敗問(wèn)題

    記錄一下公司uniapp項(xiàng)目安裝node_modules失敗問(wèn)題

    剛開(kāi)始把代碼拉下來(lái)沒(méi)有安裝node_modules直接用hbuildx工具運(yùn)行在小程序模擬器中,但是啟動(dòng)不起來(lái),提示找不到\\\'uni-read-pages\\\'模塊 ?然后我就npm install 一下,結(jié)果安裝失敗,翻譯過(guò)來(lái)是報(bào)的什么字符錯(cuò)誤信息,然后百度了一下好像是node版本和npm版本的問(wèn)題,我當(dāng)時(shí)的node版本是

    2024年02月02日
    瀏覽(46)
  • 最近正在集成SpringBoot與MyBatis-plus, MyBatis-Plus-Join體驗(yàn)感很好啊

    最近正在集成SpringBoot與MyBatis-plus, MyBatis-Plus-Join體驗(yàn)感很好啊

    MyBatis-Plus (opens new window)(簡(jiǎn)稱 MP)是一個(gè) MyBatis (opens new window)的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生。 無(wú)侵入:只做增強(qiáng)不做改變,引入它不會(huì)對(duì)現(xiàn)有工程產(chǎn)生影響,如絲般順滑 損耗?。?jiǎn)?dòng)即會(huì)自動(dòng)注入基本 CURD,性能基本無(wú)損耗

    2024年02月08日
    瀏覽(20)
  • android excludeFromRecents將activity在最近的使用的應(yīng)用程序列表中不顯示

    excludeFromRecents 是Android應(yīng)用程序清單文件(AndroidManifest.xml)中的一個(gè)屬性,用于控制應(yīng)用程序是否在最近使用的應(yīng)用程序列表中顯示。通過(guò)將 excludeFromRecents 屬性設(shè)置為 true ,可以將應(yīng)用程序從最近使用的應(yīng)用程序列表中排除。 以下是將應(yīng)用程序排除在最近使用的應(yīng)用程序列

    2024年02月15日
    瀏覽(20)
  • 【云原生】持續(xù)集成&持續(xù)部署

    【云原生】持續(xù)集成&持續(xù)部署

    本文主要總結(jié)CI/CD的流程,不會(huì)詳細(xì)介紹每個(gè)知識(shí)點(diǎn)。 集成,就是把應(yīng)用程序、相關(guān)環(huán)境、配置全局打包放在一個(gè)容器中的操作。部署就不解釋了。 如果是自己手動(dòng)部署的話,流程應(yīng)該是這樣的: 在本地打包成jar包 將jar包上傳至服務(wù)器 在服務(wù)器上其他環(huán)境,比如jdk環(huán)境 在

    2024年02月22日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包