uni-app 使用本地打包配置安卓原生插件


  在使用 uni-app 開發的時候,遇到了一個很棘手的問題。即獲取設備參數的時候 uni-app 並沒有相關方法,而安卓開發是可以做到的,因為接的是三方推廣,所以功能必須實現,所以求助了安卓的大佬幫我們寫了一個插件。

  uni-app 提供了以下方式來調用原生插件

 

 

   我們可以通過這個方法來獲取到插件,並且調用他。官方示例

const dcRichAlert = uni.requireNativePlugin('DCloud-RichAlert')

 

 

 

  so far so good,and then something bad happen。

 

 

   what?公司的項目是禁止上傳的,怎么破?

  后來老大研究了一下官方的示例,找到了使用原生插件本地打包的方法。

  首先需要在本地打包的文件夾下配置 dcloud_uniplugins.json 文件

 

 

 在文件內部聲名自己調用的原生插件

{
    "nativePlugins": [
    {
      "plugins": [
        {
          "type": "module",
          "name": "PhoneInfo",//調用插件的名稱
          "class": "com.app.uniplugin_appinfo.PhoneInfo"//插件方法全稱
        }
      ]
    }
  ]
}

然后在 libs 文件夾放入安卓寫的插件

 

 

 現在,插件的基本部署已經完成了,開始調用吧。

const plungin = uni.requireNativePlugin('PhoneInfo'); // PluginName 為原生插件名稱
plungin.getDeviceId('1',function(result){
    deviceid=result;
    $HttpPost(url, {deviceid,ptype}, res => {
        if (res.data.code != 200 || res.statusCode != 200) {
            $Toast('系統錯誤,請重試!');
            return;
        }
        SetStorage('webviewUrl', res.data.data.Url);
        uni.navigateTo({
            url: "/pages/web-view/web-view"
        })
    })
})

上面就完成了插件的調用,因為安卓的大佬第一次寫 uni-app 的原生插件,所以完全照搬的官方示例的寫法給我定義的方法,本來我只是需要一個返回值的,期待的是下面這種,得到的是上面這種。欸……心塞

deviceid=plungin.getDeviceId;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM