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

Uniapp安卓原生插件開發(fā)Demo

這篇具有很好參考價值的文章主要介紹了Uniapp安卓原生插件開發(fā)Demo。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

當HBuilderX中提供的能力無法滿足App功能需求,需要通過使用Andorid/iOS原生開發(fā)實現(xiàn)時,可使用App離線SDK開發(fā)原生插件來擴展原生能力。這里舉兩個例子來說明具體的流程。

官網(wǎng)文檔地址:
https://nativesupport.dcloud.net.cn/NativePlugin/README


一、安裝開發(fā)工具

JAVA: jdk1.8
Android Studio: 下載地址Android Studio官網(wǎng) OR Android Studio中文社區(qū)
App離線SDK下載: 請下載2.9.8+版本的android平臺SDK
HBuilderX 下載地址: 官網(wǎng)下載

二、導入uni插件原生項目

安裝好開發(fā)工具后,先導入下載的Uniapp Demo中解壓后有一個叫UniPlugin-Hello-AS安卓項目

uniapp原生插件開發(fā),uniapp,android,前端,java

UniPlugin-Hello-AS工程請在App離線SDK中查找

打開Android Studio菜單選項File—>New—>Import Project。

uniapp原生插件開發(fā),uniapp,android,前端,java

不同的Android 的Sdk和gradle的版本是存在對應關系的,如果gradle sync失敗更換gradle版本或更換Android
Studio版本,不然的話會報各種錯誤

導入成功之后,等待一會,它會自動下載一些依賴的包,如過程中控制臺報錯,仔細去看,與下圖類似的就提示你缺SDK,問你要不要下載,你點Install,然后選擇accept,點擊next下載,完了error就沒了。

uniapp原生插件開發(fā),uniapp,android,前端,java

如果下載的依賴包速度很慢,可以在build.gradle中配置鏡像。
uniapp原生插件開發(fā),uniapp,android,前端,java

三、開發(fā)Module

可以根據(jù)自己的業(yè)務進行定制自己的功能。

主要分為兩類擴展:
1、Module 擴展 非 UI 的特定功能。
2、Component 擴展實現(xiàn)特別功能的 Native 控件。

在項目根目錄右擊new——》Module——》Android Library——》next

uniapp原生插件開發(fā),uniapp,android,前端,java
uniapp原生插件開發(fā),uniapp,android,前端,java

新建的module結構如下:

uniapp原生插件開發(fā),uniapp,android,前端,java

此時創(chuàng)建一個名為TestModule的類,繼承UniModule。
在新建好類之后,在app中assets的dcloud_uniplugins.json文件中加入如下代碼,將新建的類注冊進去:

{
  "plugins": [
    {
      "type": "module",
      "name": "szjplugin_testmodule",
      "class": "com.example.szjplugin.testmodule.TestModule"
    }
  ]
}

之后在Gradle Scripts的build.gradle(app)中添加如下代碼,將新建的模塊進行注冊進去:

// 添加uni-app插件
implementation project(':uniplugin_component')
implementation project(':uniplugin_module')
implementation project(':uniplugin_richalert')
implementation project(':szjplugin_testmodule')

之后在TestModule中寫一個add方法(用來計算兩個數(shù)的和)。 代碼如下:

@UniJSMethod
public void add(JSONObject json, UniJSCallback callback){
    final int a = json.getIntValue("a");
    final int b = json.getIntValue("b");
    callback.invoke(new JSONObject(){{
        put("code",200);
        put("result",a+b);
    }});
}

@UniJSMethod注解就和@Controller的作用是一樣的,上述代碼調(diào)用理解成JS代碼的話,可以看做是如下代碼:

Module.add({
},e => {
});

還需要進行配置,使項目可以調(diào)試,生成自定義基座,需要在根節(jié)點下添加debug="true"和syncDebug=“true”,如下圖:

uniapp原生插件開發(fā),uniapp,android,前端,java

此時Android
Studio就告一段落,接下來來到HbuilderX中,新建一個uniapp項目。并創(chuàng)建nativeplugins目錄(后面用到),結構如下:

uniapp原生插件開發(fā),uniapp,android,前端,java

在pages的index文件的index.nvue中的中添加代碼:

<button type="default" @click="testAdd">2+5=</button>

TestAdd方法如下:

testAdd(){
	const testModule = uni.requireNativePlugin("szjplugin_testmodule")
		testModule.add(
		{
			a:2,
			b:5
		},
		e => {
			uni.showToast({
				title:JSON.stringify(e),
				icon:"none"
			})
		}
		)
	}
}

uni.requireNativePlugin(“szjplugin_testmodule”)中的參數(shù)要和在app中assets的dcloud_uniplugins.json文件中加入的plugins相同

這時候就可以進行發(fā)行,本地打包

uniapp原生插件開發(fā),uniapp,android,前端,java
uniapp原生插件開發(fā),uniapp,android,前端,java

再回到Android Studio中,將下圖的文件刪除,替換成剛剛打包得到的文件。

uniapp原生插件開發(fā),uniapp,android,前端,java

此時在dcloud_control.xml中將appid換成打包得到的文件名稱。

uniapp原生插件開發(fā),uniapp,android,前端,java

一切就緒之后,就可以在Android Studio中進行調(diào)試了,也可以打斷點調(diào)試,確保集成到uniapp是沒有問題,免得一直重復打包調(diào)試

uniapp原生插件開發(fā),uniapp,android,前端,java

運行到手機效果如下:

uniapp原生插件開發(fā),uniapp,android,前端,java

四、開發(fā)Component

過程大致和Module類似,模仿一個原生輸入框,在TestModule相同的包下創(chuàng)建TestComponent類,繼承UniComponent,并使用super調(diào)用父類構造函數(shù)

public class TestComponent extends UniComponent<EditText> {
    public TestComponent(UniSDKInstance instance, AbsVContainer parent, AbsComponentData componentData) {
        super(instance, parent, componentData);
    }
}

重寫方法:這個方法對組件進行初始化

@Override
protected EditText initComponentHostView(@NonNull Context context) {
    return new EditText(context);
}
@UniComponentProp(name = "setText")
public void setText(String text){
    getHostView().setText(text);
}

寫好之后不要忘記在app中assets的dcloud_uniplugins.json文件中加入如下代碼,將新建的類注冊進去。
就緒后再回到HbuilderX,在button的下方添加代碼使用組件:

<sn-input ref=”input” style="width: 400rpx;height: 60rpx;border-width: 2rpx;border-color: #2C405A;background-color: #2C405A"/>
<button type="default" @click="testSetText"></button>
testSetText(){
	this.$refs.input.setText("hello uni plugin");
}

組件名稱要和app中assets的dcloud_uniplugins.json一致。之后本地打包,替換app下文件目錄,Android
Studio中運行。如下圖:

uniapp原生插件開發(fā),uniapp,android,前端,java

五、合并原生代碼到uniapp項目中

點擊右邊欄gradle進行打包,如下圖:

uniapp原生插件開發(fā),uniapp,android,前端,java

打包好之后在項目文件目錄中找到

uniapp原生插件開發(fā),uniapp,android,前端,java

在HbuilderX中新建文件夾,結構如下:

uniapp原生插件開發(fā),uniapp,android,前端,java

第二級文件名稱要和package.json中的id相同。Package.json如下:

{
  "name":"Android插件開發(fā)Demo",
  "id":"szj-textmodule",
  "version":"1.0.0",
  "description":"提供Android插件開發(fā)Demo",
  "_dp_type":"nativeplugin",
  "_dp_nativeplugin": {
    "android": {
      "integrateType":"aar",
      "plugins":[
        {
          "type": "module",
          "name": "szjplugin_testmodule",
          "class": "com.example.szjplugin.testmodule.TestModule"
        },
        {
          "type": "module",
          "name": "sn-input",
          "class": "com.example.szjplugin.testmodule.TestComponent"
        }
      ]
    }
  }
}

文件好了之后,就可以在uniapp項目中看到原生的插件:

uniapp原生插件開發(fā),uniapp,android,前端,java

之后云打包,運行到安卓基座,就可以運行這個原生插件了,效果如下:
插件目前暫時不支持Kotlin。如果再必要情況下,必須使用Kotlin的時候,可以在package.json中加入dependences。當然我沒有試過,有興趣的小伙伴可以嘗試一下。

uniapp原生插件開發(fā),uniapp,android,前端,java

uniapp原生插件開發(fā),uniapp,android,前端,java

總結

好了,當我們在開發(fā)中需要通過使用Andorid/iOS原生開發(fā)實現(xiàn)時,就可以使用App離線SDK開發(fā)原生插件來擴展原生能力了,覺得有用的話煩請收藏加關注??????
下面是小弟的公眾號有興趣的大哥可以關注一下??
文章來源地址http://www.zghlxwxcb.cn/news/detail-664652.html

到了這里,關于Uniapp安卓原生插件開發(fā)Demo的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • uniapp ios原生插件開發(fā)之module

    在文章《uniapp ios原生插件開發(fā) (framework,cocoapods)》中我們已經(jīng)介紹了Module 類型的插件及其創(chuàng)建過程, 卻沒有深入的介紹Module類型插件開發(fā)過程中所涉及到的技術點。 本文呢就將重點放在對這些技術點的使用上進行詳解,算是是對上篇文章的一個補充與擴展。 在文章開始之前

    2024年02月13日
    瀏覽(20)
  • 【UniAPP X快速上手】如何使用UniAPPX開發(fā)一個原生安卓商城

    【UniAPP X快速上手】如何使用UniAPPX開發(fā)一個原生安卓商城

    uni-app x,是下一代 uni-app,是一個跨平臺應用開發(fā)引擎。 uni-app x 沒有使用js和webview,它基于 uts 語言。在App端,uts在iOS編譯為swift、在Android編譯為kotlin,完全達到了原生應用的功能、性能。 更重要的是,UniAPP X未來也會支持鴻蒙 ,這里引用DCloud社區(qū)的官方答復 DCloud有資源第

    2024年02月21日
    瀏覽(25)
  • uniapp原生插件開發(fā)調(diào)用第三方SDK

    uniapp原生插件開發(fā)調(diào)用第三方SDK

    uniapp安卓官方SDK Android 離線SDK - 正式版 | uni小程序SDK 官方uni原生插件開發(fā)教程(android)網(wǎng)址: 簡介 | uni小程序SDK 第一步,開發(fā)環(huán)境的準備 下載uniapp安卓官方SDK待后面使用,解壓完成如下圖所示。 JAVA環(huán)境 jdk,打開cmd輸入java -version查看自己的jdk版本,官方文檔中提示jdk版本應

    2024年02月15日
    瀏覽(28)
  • uniapp開發(fā)安卓App注意事項(HTML5+規(guī)范 plus調(diào)用安卓原生能力:廣播,掃描,相機等)

    使用安卓調(diào)試基座進行調(diào)試大大降低了uniapp開發(fā)安卓app的門檻 安卓開發(fā)經(jīng)常需要調(diào)用到安卓原生的api,例如廣播,掃碼,相機等等,uniapp內(nèi)置了App端的HTML5+規(guī)范,可以使用js直接調(diào)用豐富的原生能力。例如在安卓中調(diào)用原生的激光掃描能力: 該plus對象便是uniapp內(nèi)置的HTML5+規(guī)

    2024年03月19日
    瀏覽(26)
  • 原生Android與uniapp開發(fā)的H5混合開發(fā)

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

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

    2024年02月21日
    瀏覽(21)
  • uniapp開發(fā)云打包詳細流程(包含安卓Android和蘋果IOS)

    uniapp開發(fā)云打包詳細流程(包含安卓Android和蘋果IOS)

    Hbuilder在菜單欄選擇“發(fā)行”,選擇“原生App-云打包”,使用云打包不需要學習Android Studio的使用,節(jié)省開發(fā)時間,但是云打包需要排隊(排隊人數(shù)越多等待時間越長),每個賬號每天限制打包5次。 ? ? ? ? ? ? ? ? ? ? 1.2.1、安卓包名 在項目中打開manifest.json文件,基礎配

    2024年02月08日
    瀏覽(25)
  • uniapp——安卓掃碼槍插件

    2.1、開啟掃碼 2.2、關閉掃碼 3.1、startScan方法的參數(shù): 第一個參數(shù):json對象,根據(jù)實際情況傳遞,第二個參數(shù)會回傳回來 參數(shù)名 類型 默認值 說明 name String 掃碼 組件名稱 showTip Boolean true 是否展示提示文字 tip String 掃碼中… 提示文字 tipSize Number 12 提示文字大小 tipColor Stri

    2024年04月11日
    瀏覽(32)
  • uniapp使用原生小程序插件

    uniapp使用原生小程序插件

    ? ? ? ? 本文主要講述在uniapp上使用原生插件步驟 1、在使用插件之前,先登錄微信公眾平臺,在微信公眾平臺,點擊左下角設置==》第三方設置==》添加插件==》輸入插件名字==》點擊確定提交申請==》申請通過后可以使用該插件 第一步 ? ?2.搜索你需要的插件點擊添加 ? ?

    2024年02月08日
    瀏覽(17)
  • uniapp引入小程序原生插件

    怎么在uniapp中使用微信小程序原生插件,以收錢吧支付插件為例 附錄:收錢吧小程序簽名算法實現(xiàn) javascript java

    2024年02月08日
    瀏覽(24)
  • uniapp使用微信小程序提供的原生插件(組件)

    小程序交易保障標展示組件 為例 參考uniapp加載插件、微信小程序加載插件 1. manifest.json: 先打開manifest.json文件,然后我們找到\\\"mp-weixin\\\",引入需要使用的插件 2. pages.json 打開pages.json文件,然后再對應的頁面配置處添加東西 3.頁面使用

    2024年02月11日
    瀏覽(96)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包