Введение
В последнее время я работаю над небольшой программой.Основное направление исследований - обработка групповой информации.Большинство функций малой программы основано на обмене карточкой путем открытия маленькой программы, которая пересылается в группу...
Началось вличный блог
Несколько слов о пересылкеAPI
- Page.onShareAppMessage
- wx.showShareMenu
- wx.hideShareMenu
- wx.updateShareMenu
- wx.getShareInfo
связанные с пересылкойapiВсего имеется 5 элементов, и ниже кратко представлены эти элементы.apiи напишите, что вы используетеmpvueПроблемы, возникающие при разработке
Page.onShareAppMessage
Определите функцию onShareAppMessage в Page, чтобы установить информацию о пересылке страницы.
- Только если этот обработчик событий определен, в правом верхнем меню будет отображаться кнопка «Вперед».
- Вызывается, когда пользователь нажимает кнопку вперед
- Это событие должно возвращать объект для пользовательского содержимого пересылки.
Необходимо отметить, чтоТолько если этот обработчик событий определен, в правом верхнем меню будет отображаться кнопка «Вперед»., если вы определяете событие и не хотите, чтобы страница проходилаmenuпереадресовано, черезhideShareMenuпрятаться
существуетmpvueЭто событие также следует настроить после компиляции, потому что некоторые страницы также скрыты отдельно из-за проблем с запросом.
После переадресации можно пройтиfromпараметры для определенияmenuпереадресация меню илиbuttonВперед, выносить какие-то суждения.
- После успешной переадресации, если не определеноПользовательские поля переадресации, будет использована карта по умолчанию.Если нет переадресации, карта не будет передана.
- formПоля можно получить, позвонив после успешной переадресацииsuccess,completeсоединитьmenuа такжеbuttonразличные операции
- Если вы носитеshareTicketзначение, будет вsuccessОбратный вызов генерируется, и возвращаемый результат находится вshareTicketsполе, представляет собой массив.
wx.hideShareMenu
скрыть кнопку вперед
просто спрячьmenuпересылка,buttonФункция переадресации по-прежнему будет существовать
Если установить сначалаshowShareMenuи настроитьwithShareTicket, затем используйтеhideShareMenuспособ, вперед через кнопку, еще можно достатьshareTicket,следующим образом:
wx.showShareMenu({
withShareTicket: true
})
wx.hideShareMenu({
})
Не спрашивайте меня, почему я тестирую эти вещи.
wx.showShareMenu
Отображает кнопку вперед для текущей страницы
wx.showShareMenu({
withShareTicket: true
})
Настройка этого параметра в основном предназначена для его использования.shareTicketфункция, с помощью которой можно получить групповую информацию и групповую идентификацию.
wx.updateShareMenu
Обновить свойства переадресации
Я тоже использую его здесьwithShareTicketИспользование изменения поля
Да, это та корова
wx.getShareInfo
Получить детали переадресации
wx.getShareInfo({
shareTicket: res.shareTickets[0],
success: (res) => {
console.log('已成功获取到加密信息')
console.log(res)
},
fail: (res) => {
console.log(res)
}
})
параметр обратного вызова
{
errMsg: "getShareInfo:ok",
iv: "gRHeFU+Nhr36RmladCXnRQ==",
encryptedData: "IQ/RwZLeQFUGuxv0bBfOrL/KLnXO+bxcyCBru5lB92FkHIg8ae…7TnHwU+rqgerFKvpvS5JbFyh+9liUqyb2bk6/LETYQ+h/FQ=="
}
Отправьте его на бэкенд, расшифруйте в бэкэнде и получитеopenGId.
Изначально я хотел написать, как его расшифровать, но подумал, что тут задействован другой проект, а потом я напишу опыт фронтенд- и бэкенд-разработки, связанный с апплетом.
Получить процесс openGid
Есть два основных способа его получить:
- Сначала пользователь открываетshareTicketкарту общего доступа, а затем получить зашифрованную информацию с помощью getShareInfo(), отправить ее в фоновый режим для расшифровки, а затем получитьopenGId;
- Во-вторых, после того, как пользователь успешно поделится, он получитshareTicket, а затем получить зашифрованную информацию с помощью getShareInfo(), отправить ее в фоновый режим для расшифровки, а затем получитьopenGId.
Эти два метода в основном предназначены для полученияshareTicketОднако требования к продукту нашей компании заключаются в том, чтобы сравнивать и добавлять разрешения пользователям через эти два метода — администратор активно делится в определенной группе, записываетopenGId, анализировать все поступающие мини-программы, осуществляемыеshareTicketпользователя, если сравнение прошло успешно, дать ему разрешение на выполнениеVIPОперация, если сравнение не удалось, перехватить.
Получить shareTicket после успешного обмена
получено в фоновом режимеopenGIdчерез специальныйbuttonкнопка поделиться
onShareAppMessage: (resMessage) => {
console.log(`这是通过:${resMessage.from}`)
// 分享卡片内容
return {
title: '首页分享',
imageUrl: 'https://xx.xxx.com/123.jpg',
path: 'pages/guide/main',
success: (res) => {
// 转发成功,向后台发送openGId
console.log(res.shareTickets)
if (resMessage.from === 'button') {
wx.getShareInfo({
shareTicket: res.shareTickets[0],
success: (res) => {
console.log('已成功获取到加密信息')
wx.request({
url: `${service}api/saveOpenGId`,
data: {
encryptedData: res.encryptedData,
vi: res.vi
},
success: (res) => {
console.log(res.data)
if (res.data.success === 'true') {
console.log('openGId 已成功存入数据库')
}
}
})
},
fail: (res) => {
console.log(res)
}
})
}
},
fail: (res) => {
// 转发失败
console.log(res)
}
}
}
несяshareTicketспособ обмена картами в апплете
if (this.$root.$mp.appOptions.shareTicket) {
this.shareTicket = this.$root.$mp.appOptions.shareTicket
// 对比openGId
const verify = await this.userRole()
if (verify.compare === true) {
// 跳转到 VIP 首页
wx.redirectTo({
url: '../index/main'
})
} else if (verify.compare === false) {
// 对比失败,跳转到普通首页
wx.redirectTo({
url: '../common/main'
})
}
}
Некоторые операции по отключению переадресации
Интерпретация этого требования заключается в том, чтобы отключить только верхний правый уголmenu, но переадресация, инициированная на странице, действительна.
Правильная работа в это время
Операция в это время
Page.onShareAppMessage()
wx.hideShareMenu()
Информационная страница мини-программырекомендовать друзьям
В то время я еще переживал, что эту страницу могут переслать, потому что она была в системе WeChat и не могла пройти существующуюAPIЧтобы запретить его, его можно перехватить только по значению сцены.
босс: Человек, который может найти этот обмен, может считаться добросовестным человеком.Просто дайте ему разрешение на обмен, но если он хочет увидеть контент, двери нет.
Режим компиляции — моделирование значений сценария
Инструмент разработчика WeChat имеет режим компиляции, с помощью которого можно смоделировать N нескольких значений сцены,
Это может напрямую имитировать открытие и переноскуshareTicketДействия после обмена картой.
допустимыйApp.onLaunch()илиApp.onShowполучатьshareTicket.
Получить эту информацию от mpvue
существуетmpvueпрошедшийthis.mp.appOptionsчтобы получить апплет наapp onLaunch/onShowвремя прошлоoptions.
Следует отметить, что жизненный цикл двух,beforeCreateа такжеcreatedЭта информация недоступна.
напиши в конце
Я напишу это сейчас, я напишу это позже, когда подумаю об этом.