查看: 32|回复: 0

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

[复制链接]

4

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-1-9
发表于 2019-11-21 14:25:00 | 显示全部楼层 |阅读模式

  在使用 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;

 



来源:https://www.cnblogs.com/gitByLegend/p/11905415.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部