HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

分享云函数调用云函数的一个简陋的解决方法

应用场景:最近需要做一个用户验证的函数,由于还没有学习使用框架是直接分了多个文件夹存放不同的云函数,那么就需要跨文件夹调用云函数。
前情提要:云函数在接受前端返回数值时会获得用户登录凭证。

问题出现:当我A文件夹内的 index.js 调用B文件夹内的 index.js 内的 test函数时,根据官方文档,我们可以像前端一样调用:

// 调用B文件夹对应云函数
await uniCloud.callFunction({
name: 'uni-id-cf',
data: {
action: 'action',
params: params
}
});

实践结果可以在B文件夹内的index.js中打印传输过来的event,但是函数没有得到调用,打印返回值是 {code: 403, msg: '缺少token'},而这段返回值来自于:

const {
action,
uniIdToken
} = event;

//UNI_WYQ:这里的uniID换成新的,保证多人访问不会冲突  
uniID = uniID.createInstance({  
    context  
})  

//event为客户端上传的参数  
console.log('event : '   JSON.stringify(event));  
console.log('context : '   JSON.stringify(context))  

if (!uniIdToken) {  
    return {  
        code: 403,  
        msg: '缺少token'  
    }  
}  

很明显是没有得到uniIdToken,这是本应从前端传输获取的,那么最终修改是手动添加传输uniIdToken:

await uniCloud.callFunction({
name: 'uni-id-cf',
data: {
action: 'action',
params: params
uniIdToken: event.uniIdToken
}
});

虽然仍然会有提示缺少context等,但是确实是可以正常运行了。等以后有更好的解决方法了再回来更新~

继续阅读 »

应用场景:最近需要做一个用户验证的函数,由于还没有学习使用框架是直接分了多个文件夹存放不同的云函数,那么就需要跨文件夹调用云函数。
前情提要:云函数在接受前端返回数值时会获得用户登录凭证。

问题出现:当我A文件夹内的 index.js 调用B文件夹内的 index.js 内的 test函数时,根据官方文档,我们可以像前端一样调用:

// 调用B文件夹对应云函数
await uniCloud.callFunction({
name: 'uni-id-cf',
data: {
action: 'action',
params: params
}
});

实践结果可以在B文件夹内的index.js中打印传输过来的event,但是函数没有得到调用,打印返回值是 {code: 403, msg: '缺少token'},而这段返回值来自于:

const {
action,
uniIdToken
} = event;

//UNI_WYQ:这里的uniID换成新的,保证多人访问不会冲突  
uniID = uniID.createInstance({  
    context  
})  

//event为客户端上传的参数  
console.log('event : '   JSON.stringify(event));  
console.log('context : '   JSON.stringify(context))  

if (!uniIdToken) {  
    return {  
        code: 403,  
        msg: '缺少token'  
    }  
}  

很明显是没有得到uniIdToken,这是本应从前端传输获取的,那么最终修改是手动添加传输uniIdToken:

await uniCloud.callFunction({
name: 'uni-id-cf',
data: {
action: 'action',
params: params
uniIdToken: event.uniIdToken
}
});

虽然仍然会有提示缺少context等,但是确实是可以正常运行了。等以后有更好的解决方法了再回来更新~

收起阅读 »

前端开发者群

前端开发者群,本群讨论关于前端的相关问题,如:面试,招聘,发展前景,技术疑问
码如下,有需要的加:

继续阅读 »

前端开发者群,本群讨论关于前端的相关问题,如:面试,招聘,发展前景,技术疑问
码如下,有需要的加:

收起阅读 »

10年+ 全栈经验,全职接单

外包 外包接单

10年+ 全栈经验,全职接单,QQ:787436120 vx: Cr1mes_9

10年+ 全栈经验,全职接单,QQ:787436120 vx: Cr1mes_9

微信支付code:100报错

微信支付

本人出现情况:真机运行,hbuilderx基座。第一次支付成功,以后支付就是code:100报错
1.检查支付配置数据,但是前端嘛,没啥检查一看就对,再说我都支付成功了,花钱了,所以数据大差不差应该没错。

  1. 所以我决定自定义基座,结果报错code:100
  2. 啥原因,我百度。最后就是打包成apk给别的同事测试,发现可以正常支付,由此,我使用另一个账号支付,成功!
  3. 综上,解决办法。打包apk让别的冤大头花钱去。(可能是微信测试支付时有缓存,因为我那个测试支付报错的微信是一直code:100)
继续阅读 »

本人出现情况:真机运行,hbuilderx基座。第一次支付成功,以后支付就是code:100报错
1.检查支付配置数据,但是前端嘛,没啥检查一看就对,再说我都支付成功了,花钱了,所以数据大差不差应该没错。

  1. 所以我决定自定义基座,结果报错code:100
  2. 啥原因,我百度。最后就是打包成apk给别的同事测试,发现可以正常支付,由此,我使用另一个账号支付,成功!
  3. 综上,解决办法。打包apk让别的冤大头花钱去。(可能是微信测试支付时有缓存,因为我那个测试支付报错的微信是一直code:100)
收起阅读 »

如何实现苹果登录授权 Sign In with Apple

App打包 移动APP App离线打包

iOS 开发苹果登录授权 Sign In with Apple
网上关于苹果登录授权的文章已经已有很多,但大多数介绍有些繁琐,实际操作起来很简单。核心要获取到三个参数:team_id, client_id, key_id,再通过 uapp 命令生成 JWT Token 给后端就完事了。

苹果审核有一条规定,如果出现比如微信、QQ、Facebook等第三方账号登录时,必须要加上苹果登录,否则无法通过审核。苹果登录只针对 iOS 13及以上版本有效。

1、获取 team_id 和 client_id
进入 Identifiers 页:https://developer.apple.com/account/resources/identifiers/list

点 Identifiers+ ,注意这里输入的 com.code0xff.uapp.login 就是 client_id,换成你自己的。

下面的服务列表选中 Sign in with Apple, 点 Edit ,输入你自己服务器端的 Callback URL:

至此,我们已成功获得到两个参数 team_id 和 client_id。

2、获取 key.txt 和 key_id
进入 Keys 页:https://developer.apple.com/account/resources/authkeys/list

点 Keys+ 创建 Key,依次操作:输入 Key Name,选中 Sign in with Apple,Configure。

Configure 页面,选中在哪个 App 中使用:

点 Download,下载后文件改名为 key.txt,放入工程的 jwt 目录下:

jwt
├── config.json
└── key.txt

至此,我们已成功获得 key.txt 和 key_id。

3、通过 uapp 获得 JWT Token
JWT Token 是给服务端的,有效期6个月,所以要记得在快到6个月的时候重新生成替换。

如果还没有安装 uapp,可以通过 npm 安装:

npm i -g uapp
做完上面 jwt 目录下已经有了 key.txt,下面创建 config.json 并放入上面获得的 team_id, client_id, key_id。

jwt/config.json 内容如下:

{
"team_id": "3DSM494K6L",
"client_id": "com.code0xff.uapp.login",
"key_id": "3C7FMSZC8Z"
}
然后执行:

uapp info
就可以看到 JWT Token 了,发给后端使用既可。

继续阅读 »

iOS 开发苹果登录授权 Sign In with Apple
网上关于苹果登录授权的文章已经已有很多,但大多数介绍有些繁琐,实际操作起来很简单。核心要获取到三个参数:team_id, client_id, key_id,再通过 uapp 命令生成 JWT Token 给后端就完事了。

苹果审核有一条规定,如果出现比如微信、QQ、Facebook等第三方账号登录时,必须要加上苹果登录,否则无法通过审核。苹果登录只针对 iOS 13及以上版本有效。

1、获取 team_id 和 client_id
进入 Identifiers 页:https://developer.apple.com/account/resources/identifiers/list

点 Identifiers+ ,注意这里输入的 com.code0xff.uapp.login 就是 client_id,换成你自己的。

下面的服务列表选中 Sign in with Apple, 点 Edit ,输入你自己服务器端的 Callback URL:

至此,我们已成功获得到两个参数 team_id 和 client_id。

2、获取 key.txt 和 key_id
进入 Keys 页:https://developer.apple.com/account/resources/authkeys/list

点 Keys+ 创建 Key,依次操作:输入 Key Name,选中 Sign in with Apple,Configure。

Configure 页面,选中在哪个 App 中使用:

点 Download,下载后文件改名为 key.txt,放入工程的 jwt 目录下:

jwt
├── config.json
└── key.txt

至此,我们已成功获得 key.txt 和 key_id。

3、通过 uapp 获得 JWT Token
JWT Token 是给服务端的,有效期6个月,所以要记得在快到6个月的时候重新生成替换。

如果还没有安装 uapp,可以通过 npm 安装:

npm i -g uapp
做完上面 jwt 目录下已经有了 key.txt,下面创建 config.json 并放入上面获得的 team_id, client_id, key_id。

jwt/config.json 内容如下:

{
"team_id": "3DSM494K6L",
"client_id": "com.code0xff.uapp.login",
"key_id": "3C7FMSZC8Z"
}
然后执行:

uapp info
就可以看到 JWT Token 了,发给后端使用既可。

收起阅读 »

我需要一个支持265的视频播放器插件

插件开发

具体功能实现类似uniapp 的video组件,但是需要支持265视频编码格式

具体功能实现类似uniapp 的video组件,但是需要支持265视频编码格式

HBuilderX 真机调试连接手机经常搜索不到设备问题解决办法!

真机调试

解决办法:第一步 打开终端命令行 首先查看adb devices 查看当前adb连接设备列表
第二步 输入命令 adb kill-server 杀死服务
第三步重启服务 adb start-server 基本上就可以连接上了!

继续阅读 »

解决办法:第一步 打开终端命令行 首先查看adb devices 查看当前adb连接设备列表
第二步 输入命令 adb kill-server 杀死服务
第三步重启服务 adb start-server 基本上就可以连接上了!

收起阅读 »

【广州】团队接单 uniapp、小程序、APP、公众号、网站 ,长期有效

外包接单 外包

1、前端熟悉uniapp、flutter、React、Vue、Android、IOS等语言。
2、后端熟悉Java、php、微服务、架构设计和高并发场景处理。
3、UI设计师能根据产品的设计思路设计页面细节,包含体验展示和优化处理。

团队擅长开发各类微信小程序,APP,微信公众号,H5网页,公司企业网站,以及各类管理系统

团队位置【广州】
团队成员认真负责,做到客户满意为止,有意联系V:samhsx

继续阅读 »

1、前端熟悉uniapp、flutter、React、Vue、Android、IOS等语言。
2、后端熟悉Java、php、微服务、架构设计和高并发场景处理。
3、UI设计师能根据产品的设计思路设计页面细节,包含体验展示和优化处理。

团队擅长开发各类微信小程序,APP,微信公众号,H5网页,公司企业网站,以及各类管理系统

团队位置【广州】
团队成员认真负责,做到客户满意为止,有意联系V:samhsx

收起阅读 »

uniapp修改input输入框在Google浏览器自带的填充背景

uni_app input

1、修改的样式要放在App.vue里面,亲测有效 ^_^

2、要是修改input在Google浏览器自动填充时的浅紫色背景,可以用下面的代码,非常管用
-webkit-autofill { box-shadow: 0 0 0px 1000px white inset !important; -webkit-box-shadow: 0 0 1000px white inset !important; }

继续阅读 »

1、修改的样式要放在App.vue里面,亲测有效 ^_^

2、要是修改input在Google浏览器自动填充时的浅紫色背景,可以用下面的代码,非常管用
-webkit-autofill { box-shadow: 0 0 0px 1000px white inset !important; -webkit-box-shadow: 0 0 1000px white inset !important; }

收起阅读 »

提个建议。。。HX能否取消鼠标中间拖动文件的功能- - 滚动中键不小心按了下 结果文件就被拖乱了。。。又不能撤销 完全懵逼了

提个建议。。。HX能否取消鼠标中间拖动文件的功能- - 滚动中键不小心按了下 结果文件就被拖乱了。。。又不能撤销 完全懵逼了

提个建议。。。HX能否取消鼠标中间拖动文件的功能- - 滚动中键不小心按了下 结果文件就被拖乱了。。。又不能撤销 完全懵逼了

出现starting development server的分析

uni_app

使用uni-cli创建项目,更新了 @dcloudio/uni-* 等依赖版本为最新版2.0.1-34720220422002

这时候运行项目,编译/构建,一直处于loading状态

考虑可能是uni-app相关依赖的版本问题,开始选择性降低版本尝试,在尝试到2.0.0-32920211029004
编译/构建正常

继续阅读 »

使用uni-cli创建项目,更新了 @dcloudio/uni-* 等依赖版本为最新版2.0.1-34720220422002

这时候运行项目,编译/构建,一直处于loading状态

考虑可能是uni-app相关依赖的版本问题,开始选择性降低版本尝试,在尝试到2.0.0-32920211029004
编译/构建正常

收起阅读 »

【uni-admin管理系统】schema2code生成代码有BUG的解决方案

schema schema2code

用过schema2code生成管理系统页面的人,大概率会碰到这样一种情况吧:
比如下面这个是schema文件中一个字段的规则

  "foreignKey": "goods-list._id",  
  "enum": {  
       "collection": "goods-list",  
       "where": "type==10",  
      "field": "name as text,_id as value"  
  }

此时直接生成的list文件会存在无法正确显示正确的枚举值。
每次如果都要自己去手动改,就很麻烦。而且如果后续这个表新增了字段,再次生成后,又会破坏原本改好的内容。
而且schema2code插件作者一直也没更新了,这个生成代码的槽点不止这一个地方。

解决方案:

将上面的代码规则替换成如下:

"componentForEdit": {  
                "name": "uni-data-checkbox",  
                "props": {  
                    "collection": "goods-list",  
                    "where": "type==20",  
                    "field": "name as text,_id as value"  
                }  
            },  
            "componentForShow": {  
                "name": "daxiang-query-first",  
                "props": {  
                    "collection": "goods-list",  
                    "where": "type==20",  
                    "valueKey": "_id",  
                    "showField": "name"  
                }  
            }

此代码是使用了daxiang-query-first这个插件,解决在列表中显示枚举值。
插件详见:
daxiang-query-first

继续阅读 »

用过schema2code生成管理系统页面的人,大概率会碰到这样一种情况吧:
比如下面这个是schema文件中一个字段的规则

  "foreignKey": "goods-list._id",  
  "enum": {  
       "collection": "goods-list",  
       "where": "type==10",  
      "field": "name as text,_id as value"  
  }

此时直接生成的list文件会存在无法正确显示正确的枚举值。
每次如果都要自己去手动改,就很麻烦。而且如果后续这个表新增了字段,再次生成后,又会破坏原本改好的内容。
而且schema2code插件作者一直也没更新了,这个生成代码的槽点不止这一个地方。

解决方案:

将上面的代码规则替换成如下:

"componentForEdit": {  
                "name": "uni-data-checkbox",  
                "props": {  
                    "collection": "goods-list",  
                    "where": "type==20",  
                    "field": "name as text,_id as value"  
                }  
            },  
            "componentForShow": {  
                "name": "daxiang-query-first",  
                "props": {  
                    "collection": "goods-list",  
                    "where": "type==20",  
                    "valueKey": "_id",  
                    "showField": "name"  
                }  
            }

此代码是使用了daxiang-query-first这个插件,解决在列表中显示枚举值。
插件详见:
daxiang-query-first

收起阅读 »