// pages/testQQ/testQQ.js import md5 from "./md5"; Page({ /** * 页面的初始数据 */ data: { nvabarData: { showCapsule: 1, title: '授权页', callback: () => { console.log("返回界面3:"); } }, // qrcodeUrl: "https://music-play.oss-cn-shenzhen.aliyuncs.com/device/20250328100356565128956.png", qrcodeUrl: "", }, callback() { // 重置小程序界面到首页 console.log("返回界面4", constant.routePath.index); constant.routeUtil.goBack(); }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // https://y.qq.com/m/unionlogin/dist/index.html?appId=2&encryptString=%7B%22response_type%22%3A%22code%22%2C%22state%22%3A%22123456%22%7D&packageName=com.tencent.qqmusic.api.demo&callbackUrl=https%3a%2f%2fwww.example.com&changeLogin=0&needNotifyErr=0 let url = options.url; // let callbackUrl = `http://testweb.radio1964.com/pages/ximalaya/index`; // // 将response_type、state等组装成json格式,得到encryptString字段,需要对encryptString做一次urlencode // var encryptString = encodeURIComponent( // JSON.stringify({ // response_type: "code", // state: Date.now().toString, // callbackUrl: callbackUrl // }) // ); // // 2000000454 // console.log("解密:", encryptString) // 从 options 中获取传入的 url 参数 // var baseUrl = getApp().globalData.baseUrl + "/web"; // const qqUrl = options.param; // http://testweb.radio1964.com/pages/ximalaya/index?ximalayaAccessToken=a87c56fb4e2c914cfeebca611a7f6998&ximalayaUid=511052575&ximalayaRefreshToken=5fcf78529bc2bc0e440dfdc17e3fbe9a&ximalayaExpiresIn=7200#deviceid=MW-SR2(4GWIFI):AIrSMArT145060808230 // let qqUrl = "https://y.qq.com/iot_auth/?a=2000000454&c=auh-OMPRpkBvrnUa61LjvuKu" // let qqUrl = `https://y.qq.com/m/unionlogin/dist/index.html?appId=${this.data.QQ_MUSIC_APP_ID}&encryptString=${encryptString}&packageName=${this.data.QQ_DEV_NAME}&changeLogin=1&callbackUrl=${callbackUrl}&needNotifyErr=1&authForce=0&loginType=weixin`; // https://y.qq.com/m/unionlogin/dist/index.html?appId=120&encryptString=%7B%22response_type%22%3A%22code%22%7D&packageName=猫王妙播&changeLogin=0&callbackUrl=${callbackUrl}&needNotifyErr=0 // let qqUrl = `https://y.qq.com/m/unionlogin/dist/index.html?appId=2&encryptString=%7B%22response_type%22%3A%22code%22%2C%22state%22%3A%22123456%22%7D&packageName=com.tencent.qqmusic.api.demo&callbackUrl=${callbackUrl}&changeLogin=0&needNotifyErr=1` // https://y.qq.com/m/unionlogin/dist/index.html?appId=120&encryptString=%7B%22response_type%22%3A%22code%22%2C%22state%22%3A%22123456%22%7D&packageName=com.Muzen.MaoKingRadioPlayer&changeLogin=0&callbackUrl=https%3a%2f%2fwww.example.com&needNotifyErr=0 // https://y.qq.com/m/unionlogin/dist/index.html?appId=2&encryptString=%7B%22response_type%22%3A%22code%22%2C%22state%22%3A%22123456%22%7D&packageName=com.tencent.qqmusic.api.demo&callbackUrl=https%3a%2f%2fwww.example.com&changeLogin=0&needNotifyErr=0 // let qqUrl = "https://m.ximalaya.com/login?hide_third_login=null&fromUri=https%3A%2F%2Fapi.ximalaya.com%2Foauth2%2Fv2%2Fauthorize%3Fclient_id%3Db55fe439798052676e61fbf0f0f649b7%26response_type%3Dcode%26redirect_uri%3Dhttps://api.ximalaya.com/elderly-ximalayaos-api/openapi-fmxos/callback/oauth2/get_access_token%26device_id%3DMW-SR2(4GWIFI):AIrSMArT145060808230%26client_os_type%3D3%26state%3D1.0.0_47.107.237.154_c65af766a9744b6098c3aec86187023c_3_http://testweb.radio1964.com/pages/ximalaya/index_deviceid=MW-SR2(4GWIFI):AIrSMArT145060808230_null" // // let qqUrl = "https://y.qq.com/m/unionlogin/dist/index.html?appId=xx&encryptString=xx&packageName=xx&callbackUrl=xx&changeLogin=xx&needNotifyErr=xx" // // const url = options.param; // https://o3tapi.radio1964.com/callback/ximalaya/reportAuthInfo // wx.showModal({ // title: '复制打开浏览器', // content: '', // complete: (res) => { // if (res.cancel) { // } // if (res.confirm) { // wx.setClipboardData({ // data: qqUrl, // }) // } // } // }) url = decodeURIComponent(url); url = url + "?channel=webChannel" console.log("打开授权页:", url) this.setData({ qrcodeUrl: url }); }, webChannel(e) { // e.detail.data 是网页 postMessage 发送的数据数组 console.log('收到 web-view 消息:', e); var that = this; const msgData = e.detail.data[0]; // 消息数据 if (msgData.channel === "webChannel") { console.log(" 收到 webChannel 消息:", msgData.content); } var channel = e.detail.message; switch (channel) { case "webChannel": // message=====?name=authXmlyWeb&code=1====webChannel var msg = message.message; var params = JSON.parse(msg); var channelName = params["name"] ?? ""; // var externParams = params["externParams"] ?? {}; if (channelName === "authXmlyWeb") { var code = params["code"] ?? 0; // 授权成功 wx.showToast({ title: code === 1 ? '授权成功' : '授权失败,请稍后再试', icon: code === 1 ? 'success' : 'fail' }); const pages = getCurrentPages(); const prevPage = pages[pages.length - 2]; // 修改授权 prevPage.setData({ isAuthXmly: code === 1, }); } default: break; } // 可以根据需要处理消息 }, })