- 个人主体小程序可以通过webview打开同主体公众号的文章吗?
个人主体小程序可以通过webview打开同主体公众号的文章吗? 如题,做了个小程序的引导教程, 小程序和公众号都是我个人主体注册的,能跳吗?
1天前 - index.js:32 Error: collection.get:fail -501001 ?
index.js:32 Error: collection.get:fail -501001 resource system error. env status is isolated 这是怎么回事 有一个云函数一直报错
12-10 - 云开始技术方案请教?
打扰大家了,有一个问题想请教大佬们。我有一个留学社区类小程序已经开发了大概90%,使用普通的程序开发(uniapp+springJava),不是腾讯云开发 因为一半的用户在海外各地(欧洲美洲澳洲都有),请问为了避免海外用户使用卡顿,使用云托管是否可以解决?云托管的云端文件存储带 CDN 加速吗? 目前得知云开发是可以完美解决海外使用问题,但是后端转云开发太麻烦了 如果云托管不能解决海外用户使用卡顿问题,请问有什么方法解决吗?
12-03 - 小程序运行报错r `data-event-params` with message: error ?
小程序运行报错r `data-event-params` with message: error ? [ WXML 文件编译错误] ./pages/target/targetManage.wxml 请问这是咋回事 Bad attr `data-event-params` with message: error at token `:`. <view class="content data-v-5c9ff0ec"> <page-loading bind:__l="__l" class="data-v-5c9ff0ec" loadingShow_="{{loadingShow}}" vueId="31d6e13b-1"></page-loading> <view class="list-wrap data-v-5c9ff0ec"> <view class="list-item data-v-5c9ff0ec" wx:for="{{$root.l0}}" wx:for-index="ind" wx:for-item="behavior" wx:key="id"> <view class="title-wrap flex-align-center flex-between data-v-5c9ff0ec"> <view bindtap="__e" class="left flex-align-center data-v-5c9ff0ec" data-event-opts="{{[ [ 'tap',[ [ 'e0',['$event'] ] ] ] ]}}" data-event-params="{{behavior:behavior[$orig],ind:ind}}"> <view class="radio-wrap data-v-5c9ff0ec" wx:if="{{is_created}}"> <m-radio actBgColor="#ADE03D" bind:__l="__l" class="data-v-5c9ff0ec" color="#FFFFFF" fontSize="{{24}}" height="{{40}}" selected="{{behavior[$orig].select}}" vueId="{{'31d6e13b-2-'+ind}}" width="{{40}}"></m-radio> </view> <text class="title data-v-5c9ff0ec">{{behavior[$orig].name}}</text> <text class="progress data-v-5c9ff0ec">{{behavior.g0+'个'}}</text> </view> <view bindtap="__e" class="add-icon-wrap data-v-5c9ff0ec" data-event-opts="{{[ [ 'tap',[ [ 'addTarget',['$0'],[ [ ['pageData.list','id',behavior[$orig].id,'id'] ] ] ] ] ] ]}}" wx:if="{{is_created}}"> <image class="add-icon data-v-5c9ff0ec" mode="aspectFill" src="{{ossMoUrl+'ic_add2.png'}}"></image> </view> </view> <view class="goal flex-align-center flex-between flex-wrap data-v-5c9ff0ec" wx:for="{{behavior[$orig].behaviors}}" wx:for-index="i" wx:for-item="beha" wx:key="id"> <view class="left flex-align-center data-v-5c9ff0ec"> <view bindtap="__e" class="radio-wrap flex-align-center data-v-5c9ff0ec" data-event-opts="{{[ [ 'tap',[ [ 'onclick',['$0'],[ [ ['pageData.list','id',behavior[$orig].id],['behaviors','id',beha.id] ] ] ] ] ] ]}}" wx:if="{{is_created}}"> <m-radio actBgColor="#ADE03D" bind:__l="__l" class="data-v-5c9ff0ec" color="#FFFFFF" fontSize="{{24}}" height="{{40}}" selected="{{beha.select}}" vueId="{{'31d6e13b-3-'+ind+'-'+i}}" width="{{40}}"></m-radio> </view> <view catchtap="__e" class="flex-align-center data-v-5c9ff0ec" data-event-opts="{{[ [ 'tap',[ [ 'e1',['$event'] ] ] ] ]}}" data-event-params="{{behavior:behavior[$orig],beha:beha}}"> <image class="icon data-v-5c9ff0ec" mode="aspectFill" src="{{beha.icon}}"></image> <view class="name-desc flex-column data-v-5c9ff0ec"> <text class="{{['name','data-v-5c9ff0ec',beha.remark?'ellipsis-one':'ellipsis-two']}}">{{beha.name}}</text> <text class="desc ellipsis-two data-v-5c9ff0ec" wx:if="{{beha.remark}}">{{beha.remark}}</text> </view> </view> </view> <view class="right flex-column data-v-5c9ff0ec" wx:if="{{is_created}}"> <view class="sort-wrap flex-align-center data-v-5c9ff0ec"> <view catchtap="__e" class="sort-icon data-v-5c9ff0ec" data-event-opts="{{[ [ 'tap',[ [ 'e2',['$event'] ] ] ] ]}}" data-event-params="{{i:i,beha:beha,ind:ind}}"> <image class="icon data-v-5c9ff0ec" mode="aspectFill" src="{{ossMoUrl+'ic_sort_top_gray.png'}}" wx:if="{{i==0}}"></image> <image class="icon data-v-5c9ff0ec" mode="aspectFill" src="{{ossMoUrl+'ic_sort_top.png'}}" wx:else></image> </view> <view catchtap="__e" class="sort-icon data-v-5c9ff0ec" data-event-opts="{{[ [ 'tap',[ [ 'e3',['$event'] ] ] ] ]}}" data-event-params="{{i:i,behavior:behavior[$orig],beha:beha,ind:ind}}"> <image class="icon data-v-5c9ff0ec" mode="aspectFill" src="{{ossMoUrl+'ic_sort_down_gray.png'}}" wx:if="{{i==behavior.g1-1}}"></image> <image class="icon data-v-5c9ff0ec" mode="aspectFill" src="{{ossMoUrl+'ic_sort_down.png'}}" wx:else></image> </view> </view> <view catchtap="__e" class="delete-icon data-v-5c9ff0ec" data-event-opts="{{[ [ 'tap',[ [ 'deleteSingle',['$0'],[ [ ['pageData.list','id',behavior[$orig].id],['behaviors','id',beha.id] ] ] ] ] ] ]}}"> <image class="icon data-v-5c9ff0ec" mode="aspectFill" src="{{ossMoUrl+'ic_delete2.png'}}"></image> </view> </view> </view> </view> </view> <view class="empty-wrap flex-column flex-align-center data-v-5c9ff0ec" wx:if="{{$root.g2}}"> <view bindtap="__e" class="add-wrap flex-column flex-center data-v-5c9ff0ec" data-event-opts="{{[ [ 'tap',[ [ 'goPage',['/pages/target/targetAdd'] ] ] ] ]}}" wx:if="{{is_created}}"> <text class="cuIcon-add data-v-5c9ff0ec"></text> <text class="text data-v-5c9ff0ec">添加一个目标</text> </view> <view class="add-wrap flex-column flex-center data-v-5c9ff0ec" wx:else> <text class="text data-v-5c9ff0ec">暂无目标,请让创建者添加~</text> </view> </view> <view class="cu-load loading data-v-5c9ff0ec" wx:if="{{pageData.status==0}}"></view> <view class="data-v-5c9ff0ec" style="height:30rpx;"></view> <view class="ios-bottom data-v-5c9ff0ec"></view> <block wx:if="{{is_created}}"> <view class="data-v-5c9ff0ec" style="height:144rpx;"></view> <view class="fix-bottom data-v-5c9ff0ec"> <view class="flex-align-center flex-between data-v-5c9ff0ec"> <view bindtap="__e" class="left flex-align-center data-v-5c9ff0ec" data-event-opts="{{[ [ 'tap',[ [ 'selectAllChange',['$event'] ] ] ] ]}}"> <view class="radio-wrap data-v-5c9ff0ec"> <m-radio actBgColor="#ADE03D" bind:__l="__l" class="data-v-5c9ff0ec" color="#FFFFFF" fontSize="{{24}}" height="{{40}}" selected="{{selectAll}}" vueId="31d6e13b-4" width="{{40}}"></m-radio> </view> <text class="text-a data-v-5c9ff0ec">全选</text> <text class="text-b data-v-5c9ff0ec">{{'已选择:'+$root.g3+'个目标'}}</text> </view> <view bindtap="__e" class="btn flex-center data-v-5c9ff0ec" data-event-opts="{{[ [ 'tap',[ [ 'deleteSelected',['$event'] ] ] ] ]}}" style="{{'background-color:'+($root.g4?'#765DF4':'#e5e5e5')+';'}}">删除</view> </view> <view class="ios-bottom data-v-5c9ff0ec"></view> </view> </block> <m-modal bind:__l="__l" bind:submit="__e" class="data-v-5c9ff0ec vue-ref" content="{{'确定删除选中的'+$root.g5+'个目标,删除后不可恢复?'}}" data-event-opts="{{[ [ '^submit',[ ['deleteSelect'] ] ] ]}}" data-ref="mModal" title="提示" vueId="31d6e13b-5"></m-modal> <m-modal bind:__l="__l" bind:submit="__e" class="data-v-5c9ff0ec vue-ref" content="确认删除当前目标?" data-event-opts="{{[ [ '^submit',[ ['deleteSelect2'] ] ] ]}}" data-ref="mModal2" title="提示" vueId="31d6e13b-6"></m-modal> </view>
11-30 - 小程序自定义组件支持属性默认值吗?
小程序自定义组件支持属性默认值吗? [图片]
11-25 - 这个古诗连线的创意做成小程序如何?
这个古诗连线的创意做成小程序如何? [图片]
11-23 - 在自己的小程序通过跳转小程序的方式跳转到自己的小程序,安卓端为啥不支持?
具体是这样 以下是墨问笔记的小程序截图,墨问我就不做过多介绍了,就是一个文章社区,在文章内容里面可以支持插入小程序的功能, 如下面截图所示,如果我在文章中插入跳转自己小程序,安卓端,再打开的时候会报错,提示不支持,请问这是为什么? [图片] [图片] [图片] 下面是在社群反馈给墨问的开发同学得到的回复 [图片]
11-16 - 昵称获取api在低端机型会获取失败
昵称获取api在低端机型会获取失败 代码如下所示 1 <view class="titleView">微信昵称</view> <view class="inputView"> <input type="nickname" bindnicknamereview="bindNicknameReview" bindinput="inputName" value="{{userInfo.nickName}}"/> </view> 2 bindNicknameReview: function (event) { console.log(event); let pass = event.detail.pass; this.setData({ pass }) }, inputName(e) { console.log(e); this.setData({ 'userInfo.nickName': e.detail.value }) }, 具体机型如下所示 [图片]
11-12 - PC打开小程序支持双屏展示了,大家是怎么处理双屏状态同步的?
1 小程序支持双屏展示了,大家是怎么处理双屏状态同步的? 比如下面一个投票列表和投票详情,我在详情页投票了,但是列表里面的状态还是未同步 [图片] 1
11-04 - 云开发云函数如何调用普通函数?
这里是一个毫秒转分:秒的格式化函数,format2,如何在云函数中调用? [图片] [图片] [图片] // 云函数入口文件 const cloud = require('wx-server-sdk') const dateUtils = require('date-utils') process.env.TZ ='Asia/Shanghai' cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() const _ = db.command // 云函数入口函数 exports.main = async (event, context) => { console.log(event); let padTo2Digits = function (num) { return num.toString().padStart(2, '0'); } let padTo3Digits = function (num) { return num.toString().padStart(3, '0'); } let format2 = function(num){ let totalSeconds = num; let ms = totalSeconds % 1000; totalSeconds = parseInt(num/1000); // ️ 获取完整分钟数 const minutes = Math.floor(totalSeconds / 60); const seconds = totalSeconds % 60; // ✅ 格式化为 MM:SS // const result = `${this.padTo2Digits(minutes)}:${this.padTo2Digits(seconds)}:${this.padTo3Digits(ms)}`; const result = `${this.padTo2Digits(minutes)}:${this.padTo2Digits(seconds)}`; //console.log(result); // ️ "09:25" return result; } try { let dt = new Date(); let today = dt.toFormat("YYYY-MM-DD"); let time = dt.toFormat("YYYY-MM-DD HH24:MI:SS"); let res = await db.collection('profiles') .aggregate() .match({ _id:_.exists(true) }) .skip(0) .limit(500) .end() let items = res.list; items.forEach(async (item)=>{ let _id = item['_id']; let diff = item['diff']; let ytimes = this.format2(diff); console.log(_id,ytimes); await db.collection('profiles').doc(_id).update({ // data 字段表示需新增的 JSON 数据 data: { ytimes: ytimes, } }) }) } catch(e) { console.error(e) } }
10-28