uni-app插件开发经验总结分享,希望对正在摸索中的朋友有所帮助

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app插件开发经验总结分享,希望对正在摸索中的朋友有所帮助

折腾了好几天的分享插件开发终于有点成果了,现打包发布的app已可以成功分享到QQ,微信,新浪微博,太不容易了,以下是一些经验教训,希望对正在探索分享插件开发的朋友有所帮助。

入门资料参考: Hbuilder 配置第三方分享 http://ask.dcloud.net.cn/docs#http://ask.dcloud.net.cn/article/27

分享插件开发指南 http://ask.dcloud.net.cn/article/36

html5 分享接口 http://www.html5plus.org/doc/zh_cn/share.html

重大问题: 1:Android包名和签名问题,在以上分享开放平台注册应用时都需要填写这个东西, 根据Android包名获取android签名,工具下载地址https://github.com/mobileresearch/weibo_android_sdk/blob/master/app_signatures.apk 安装到Android手机上进行签名生成, 使用前一定要在该手机上安装打包好的app,否则该工具无法生成签名。

2:新浪微博回调地址问题 2.1 Hbuilder打包配置文件中,回调地址属性是redirect_uri 不是 redirect_url,平时写地址命名为url习惯了,这里可要注意了。 2.2 新浪开放平台配置的授权回调页和取消授权回调页,我配置为同一个请求: http://域名/app/userShare/shareCallBack,打包manifest.json 文件中redirect_uri也配置为这个就可以了。

3:分享网络图片问题 最纠结的也就是如何分享网络图片了,IOS不存在问题,Android存在以下问题: 3.1 分享到QQ,微信,如果网络图片太大了,可能会分享失败,有两种解决办法1下载图片到本地,2进行图片裁剪(我们是采用阿里云存储图片的,网络路径后可以加参数进行图片裁剪,可能对大多数朋友不大实用),我使用的第2种办法,分享发送时图片参数: msg.thumbs=[裁剪后的网络路径]; msg.pictures=[原网络路径];

3.2 分享到新浪微博完全就不支持网络路径,解决办法,下载图片到本地,然后再分享,代码参考 http://ask.dcloud.net.cn/article/183

4:微信分享一闪关闭并回到APP Android包名与签名不一致导致,一定要先打包好正式的APP,然后再用签名生成工具生成签名,并配置到对应开放平台。

遗留问题,希望专家们能给出解决方案!! 1:分享到新浪微博无法分享链接,发送分享接口中设置msg.href=‘http://ask.dcloud.net.cn/链接’,打开的新浪微博应用也无法显示该链接,IOS,Android都存在该问题。

2:Android分享到新浪微博时,手机上(红米)已经安装过新浪微博应用,就是无法弹出新浪微博应用进行文字输入(IOS可以),只能默认分享。

以下是分享相关的js代码,经供参考


21 回复

微博分享连接:我的解决办法是,在你分享的文字后面拼接上你要分享的连接地址,分享到微博后就可以打开了


分享到新浪微博无法分享链接,发送分享接口中设置msg.href=‘http://ask.dcloud.net.cn/链接’,打开的新浪微博应用也无法显示该链接,IOS,Android都存在该问题,这个专家帮忙解决下啊!!

亲,能否发个分享的独立demo,现在开发MUI急需成功的demo案例,不然真的太痛苦了

新建移动app时,看Hello H5+和Hello mui,代码都是开源的。里面都有分享的demo。 此文更多的是意义是指导配置环节,避免配置错误。

这个我觉得我肯定会用的到,先留下足迹

先留下足迹,然用时参考

先做几号,回去慢慢研究

s.send( msg, function(){ mui.toast(“分享到”"+s.description+"“成功! “); console.log(“分享到””+s.description+”"成功,返回应用 ");//分享给qq好友,微信好友如果不返回应用,无法监听到分享成功回调 那这个问题怎么处理呢

感谢!!!解决了我的问题

你这个图片链接的截取很受用,但是我还是有点问题,就是我们客户那边要求分享facebook

BusinessTypeEnum 这个是什么枚举啊

qq 分享给好友,返回。没有调用 回调函数。有遇到过 这种问题的吗?

请教下为什么plus.share.getServices在HBuilderX 打包能获取到服务对象 可是在android studio离线打包却是空呢?

你好这个问题解决了嘛????

APP分享微信,朋友圈,然后在微信点击分享链接跳转唤起APP(用户已下载),跳转下载链接或者H5(未下载)?如何实现?

楼主本地打包plus.share.getServices怎么获取对象为空

uni-app插件开发经验总结分享

在开发uni-app插件的过程中,积累了一些经验,希望这些分享能帮助正在摸索中的朋友们更加高效地开发插件。以下是一些关键步骤和代码示例,帮助你更好地理解uni-app插件开发的流程。

1. 创建插件项目

首先,你需要创建一个uni-app插件项目。可以使用HBuilderX提供的插件创建向导,或者手动创建一个文件夹结构。插件项目的基本结构如下:

my-plugin/
├── manifest.json
├── plugin.json
├── src/
│   ├── components/
│   │   └── MyComponent.vue
│   ├── js/
│   │   └── my-plugin.js
│   └── styles/
│       └── my-plugin.css
└── README.md

2. 配置manifest.json

manifest.json文件用于描述插件的基本信息:

{
  "id": "com.example.myplugin",
  "name": "My Plugin",
  "version": "1.0.0",
  "description": "A simple uni-app plugin",
  "app-plus": {
    "sdkConfigs": []
  }
}

3. 配置plugin.json

plugin.json文件用于定义插件的模块、组件等:

{
  "id": "com.example.myplugin",
  "version": "1.0.0",
  "name": "My Plugin",
  "provider": "example",
  "modules": {
    "myModule": {
      "class": "path.to.MyModule",
      "methods": ["myMethod"]
    }
  },
  "components": {
    "MyComponent": {
      "usingComponents": {},
      "path": "src/components/MyComponent.vue"
    }
  }
}

4. 开发插件模块和组件

src/js/目录下创建模块文件,例如my-plugin.js

export default {
  myMethod() {
    return "Hello from My Plugin!";
  }
};

src/components/目录下创建Vue组件,例如MyComponent.vue

<template>
  <view>
    <text>{{ message }}</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello, this is a plugin component!"
    };
  }
};
</script>

<style scoped>
/* Add your component styles here */
</style>

5. 打包和发布插件

完成开发后,你可以使用HBuilderX的打包功能将插件打包成.hbx文件,然后发布到uni-app插件市场或者私有服务器。

总结

通过上述步骤,你可以创建一个简单的uni-app插件,包括配置插件的基本信息、定义模块和组件、开发具体的功能和界面。希望这些经验和代码示例能够帮助你更加高效地开发uni-app插件。如果有更复杂的需求,可以查阅uni-app官方文档,了解更多高级功能和API。

回到顶部