开发者工具上不行, 体验版测试真机可以
cover-view可以覆盖在webview上吗?需要在webview上显示按钮,想到用cover-view来实现,但是在开发者工具上始终不行
05-22H5页面调用window.wx.miniProgram.postMessage({data:{}})给小程序传递数据,再调用window.wx.miniProgram.navigateBack()触发bindmessage。小程序web-view 绑定bindmessage=“getMsg” ,在getMsg方法中返回或跳转。问:如果web-view嵌入的是第三方H5页面(不可修改)要怎么处理?
小程序使用web-view后。跳转了多次,然后点左上返回按钮。需要点击多次,才能返回到小程序。如何处小程序使用web-view后。跳转了多次,然后点左上返回按钮。需要点击多次,才能返回到小程序。如何处
05-20H5页面调用window.wx.miniProgram.postMessage({data:{}})给小程序传递数据,再调用window.wx.miniProgram.navigateBack()触发bindmessage。小程序web-view 绑定bindmessage=“getMsg” ,在getMsg方法中返回或跳转
小程序webview,页面之间跳转的,返回键是如何控制的?小程序webview,页面之间跳转的,返回键是如何控制的?? 比如现在小程序内嵌webview, paeg1跳page2,再跳page3, 然后点左上角的返回?
05-202024了 同样的问题 有解决了的吗
wx.navigateToMiniProgram 小程序之间互相跳转 IOS闪退?基础库 2.10.4 微信版本 7.0.12 wx.navigateToMiniProgram 小程序A跳转到小程序B 然后小程序B跳转到小程序A 小程序A闪退
01-31问题解决了吗?
小程序A跳转小程序B,业务逻辑结束后,B再跳转A,ios闪退,安卓正常?小程序A跳转小程序B,业务逻辑结束后,B再跳转A,ios闪退,安卓正常?
01-31有用
小程序隐私授权wx.onNeedPrivacyAuthorization案例分享?目前有些小伙伴wx.onNeedPrivacyAuthorization授权有疑问。所以分享一下目前我在开发者工具中的demo,没完整测试过。供大家参考一下 1、首先,登录小程序后台。在【设置】-【基本设置】-【服务内容与声明】-【用户隐私保护指引】中,按需求设置,填写你调用隐私接口用来做什么。提交后,官方会审核 2、目前,官方接口有问题,wx.getPrivacySetting接口(此接口是用来辅助的,用来判断当前用户是否已经授权过)一直反馈false,导致wx.onNeedPrivacyAuthorization无法触发。所以可以先不用调试全流程,先统计下那些业务/页面调用了隐私接口。具体隐私接口官方有列出来,参考链接:https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/miniprogram-intro.html 中的“开发者处理的信息”这一部分 3、在官方接口准备好前,可以先准备下隐私弹框组件。后续wx.onNeedPrivacyAuthorization中要展示此组件。弹框中的隐私协议可以通过wx.openPrivacyContract 打开第1步中,在微信后台填写的隐私指引页面。(PC端跳转空白页面,真机调试能打开页面) 下面提供几个demo代码图片 [图片] [图片] [图片] [图片]
2023-08-16蹲aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa11111111111测试22222222222222222222222222222222222222222----------这也有这个bug
textarea输入文字后再输入数字会自动换行?textarea输入文字后再输入数字会自动换行 [图片] 开发工具基础库2.25.0
2023-06-29调整后“打开小程序设置页”将支持以下两种实现方式: 方法1:使用 [代码]button[代码] 组件来使用此功能,示例代码如下:<button open-type="openSetting" bindopensetting="callback">打开设置页</button> 方法2:由点击行为触发[代码]wx.openSetting[代码]接口的调用,示例代码如下:<button bindtap="openSetting">打开设置页</button> openSetting() { wx.openSetting()} 方法2已在最新版开发者工具中支持(基础库切到2.2.4及以上),开发者可以尽早适配。 ---直接在js里面调用wx.openSetting() 开发者工具和部分安卓可以 ios不起作用
wx.openSetting调用问题?Promise风格的wx.showModal中,怎么调起wx.openSetting?wx.showModal({ title: "测试", }).then(res=>{ wx.openSetting() })
2023-06-28调整后“打开小程序设置页”将支持以下两种实现方式: 方法1:使用 [代码]button[代码] 组件来使用此功能,示例代码如下:<button open-type="openSetting" bindopensetting="callback">打开设置页</button> 方法2:由点击行为触发[代码]wx.openSetting[代码]接口的调用,示例代码如下:<button bindtap="openSetting">打开设置页</button> openSetting() { wx.openSetting()} 方法2已在最新版开发者工具中支持(基础库切到2.2.4及以上),开发者可以尽早适配。 ---直接在js里面调用wx.openSetting() 开发者工具和部分安卓可以 ios不起作用
通过wx.showModal调用wx.openSetting的问题,不知道是bug还是官方的本意?以 Promise 风格调用wx.showModal时,无法调用wx.openSetting(),如下所示: wx.showModal({ cancelColor: 'cancelColor', title: '位置授权', content: '小程序获取位置后,可提供更好的服务', confirmText: '去授权', confirmColor: 'green', }).then(res => { if (res.confirm) { console.log('用户点击了“去设置”', res) wx.openSetting() } else if (res.cancel) { console.log('用户点击了“取消”', err) } }) 但是如果回调函数的方式调用wx.showModal时,就可以调用wx.openSetting(),如下所示: wx.showModal({ cancelColor: 'cancelColor', title: '位置授权', content: '小程序获取位置后,可提供更好的服务', confirmText: '去授权', confirmColor: 'green', success(res) { if (res.confirm) { wx.openSetting() } else if (res.cancel) { console.log('用户点击了“取消”', err) } } })
2023-06-28调整后“打开小程序设置页”将支持以下两种实现方式: 方法1:使用 [代码]button[代码] 组件来使用此功能,示例代码如下:<button open-type="openSetting" bindopensetting="callback">打开设置页</button> 方法2:由点击行为触发[代码]wx.openSetting[代码]接口的调用,示例代码如下:<button bindtap="openSetting">打开设置页</button> openSetting() { wx.openSetting()}
openSetting()的问题,我用了打不开设置?关于为了避免用户取消“获取地址”之后无法再打开,我看教程说是用opensetting(). https://www.bilibili.com/video/BV1y7411z7hQ?p=85 但是代码一样还是没用。我用openSetting()怎么还打不开设置,不知道哪错了. 点取消授权,再点button, console确实输出我故意打印的“取消”了但并没有打开设置。 WXML: 获取收货地址 JS. handleChooseAddress(){ wx.getSetting({ success: (result) => { // console.log(result); const scopeAddress=result.authSetting["scope.address"]; if (scopeAddress===true||scopeAddress===undefined){ //console.log(result); wx.chooseAddress({ success: (result1) => { console.log(result1); } }); }else{ console.log("取消"); wx.openSetting({ success: (result2) => { wx.chooseAddress({ success: (result3) => { console.log(result3); } }); } }); } } }) } 另一种写法还是不对 : 报错:errMsg: "openSetting:fail errcode 1"} /* Promise形式 getSetting */ export const getSetting=()=>{ return new Promise((resolve,reject)=>{ wx.getSetting({ withSubscriptions: true, success: (result)=>{ resolve(result); }, fail:(err)=>{ reject(err); } }); }) } /* Promise形式 chooseAddress */ export const chooseAddress=()=>{ return new Promise((resolve,reject)=>{ wx.chooseAddress({ withSubscriptions: true, success: (result)=>{ resolve(result); }, fail:(err)=>{ reject(err); } }); }) } /* Promise形式 openSetting */ export const openSetting=()=>{ return new Promise((resolve,reject)=>{ wx.openSetting({ withSubscriptions: true, success: (result)=>{ resolve(result); }, fail:(err)=>{ reject(err); } }); }) } // pages/cart/index.js import{getSetting,chooseAddress,openSetting } from "../../utils/asyncWx.js"; import regeneratorRuntime from '../../lib/runtime/runtime'; Page({ /** * 页面的初始数据 */ data: { }, async handleChooseAddress(){ try { /* wx.getSetting({ success: (result) => { // console.log(result); const scopeAddress=result.authSetting["scope.address"]; if (scopeAddress===true||scopeAddress===undefined){ //console.log(result); wx.chooseAddress({ success: (result1) => { console.log(result1); } }); }else{ console.log("取消"); wx.openSetting({ success: (result2) => { wx.chooseAddress({ success: (result3) => { console.log(result3); } }); } }); } }, fail:()=>{}, complete:()=>{} }); */ const res1=await getSetting(); const scopeAddress=res1.authSetting["scope.address"]; if (scopeAddress===false){ await openSetting(); } const res2=await chooseAddress(); console.log(res2); } catch (error) { console.log(error); } } })
2023-06-28