知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
h5 跳轉(zhuǎn)微信小程序
發(fā)表時間:2021-1-5
發(fā)布人:葵宇科技
瀏覽次數(shù):225
普通的H5是無法跳轉(zhuǎn)小程序的。在手機微信內(nèi)打開的H5網(wǎng)頁可通過開放標簽
跳轉(zhuǎn)微信小程序(目前電腦微信不會渲染跳轉(zhuǎn)按鈕)。具體使用、權(quán)限說明,請閱讀微信官方文檔。
使用步驟文檔有詳細說明,這里簡單概括如下:
- 登錄微信公眾平臺進入“公眾號設(shè)置”的“功能設(shè)置”里填寫“JS接口安全域名” 。
- 后端開發(fā)提供獲取簽名相關(guān)字段的接口。
- 微信公眾平臺查看
所需跳轉(zhuǎn)的小程序原始id
,注意是gh_
開頭的。 - 按官方文檔準備
html
文件,部署到綁定域名的服務(wù)器上。(文末有完整的示例代碼,供參考) - 在手機微信內(nèi)打開部署好的
html
文件。正常情況下,會出現(xiàn)小程序的按鈕,點擊可跳轉(zhuǎn)小程序。
這些都時我開發(fā)遇到的錯誤,下面列出了原因和解決辦法。如果你也遇到了,希望對你有幫助。
非法簽名
錯誤描述:jssdk 報錯 config:invalid signature。如下圖:
原因:簽名用的url是后端自己取,
解決辦法:前端動態(tài)獲取location.href.split('#')[0]
,傳給服務(wù)端就正確啦。
const url = encodeURIComponent(location.href.split('#')[0]);
fetch(`/wechat/index?url=${url}`).then(res => {
return res.json()
})
復(fù)制代碼
如果不是url的問題,就麻煩后端同學對照文檔,閱讀附錄1-JS-SDK使用權(quán)限簽名算法、附錄5-常見錯誤及解決方法,確認簽名算法是否正確。
信息不完整,無法啟動
錯誤描述:點擊打開小程序的按鈕,點擊允許后,toast
提示 “信息不完整,無法啟動”。
原因:開發(fā)標簽的 username
不正確。我當時就是寫成了配套公眾號的原始id
。/(ㄒoㄒ)/~~
解決:請再次你的確定
標簽的 username
參數(shù)是 gh_
開頭的目標小程序的原始id
。
jweixin引入時報錯
錯誤描述:uni-app
項目中,vue
文件 require('../../common/jweixin-1.6.0.js')
,報錯。
原因:jweixin
里執(zhí)行this.document.title
,this
期望指向window
,但uni-app
打包構(gòu)建后this
指向了undefined
。
解決辦法:
- 改
jweixin-1.6.0.js
源碼文件,將第一個this
改成window
。 uni-app
h5 支持自定義模板,在模板中直接使用script
標簽引入就沒有這個問題啦。- 更多解法參考這個回答。
錯誤描述:將如下內(nèi)容粘貼到vue文件的template出現(xiàn)一大堆報錯。
復(fù)制代碼
官方說明如下:
對于Vue等視圖框架,為了避免template標簽沖突的問題,可使用
復(fù)制代碼
wx-open-launch-weapp 里標簽樣式問題
問題描述:打開小程序按鈕,要固定在屏幕右下方,使用
fixed
定位,發(fā)現(xiàn)標簽不見了?按鈕line-height
設(shè)置為100rpx
,不生效?官方說明如下:
頁面中與布局和定位相關(guān)的樣式,如
position: fixed; top -100;
等,盡量不要寫在插槽模版的節(jié)點中,請聲明在標簽或其父節(jié)點上。除了官方說明,實踐總結(jié)如下幾點:
- 插槽模版的節(jié)點,不能使用rpx,定義的scss變量名當然也不可以(復(fù)制粘貼注意下/(ㄒoㄒ)/~~)。
- 插槽模版的節(jié)點,設(shè)置寬高100%無效。
- 父節(jié)點可設(shè)置
fixed
等,定位、布局類樣式可寫在父節(jié)點上,插槽節(jié)點放在里面就能實現(xiàn)你想要的布局。- 父節(jié)點使用flex 布局,可能會出現(xiàn)樣式。(本來想用flex布局實現(xiàn)居中的,結(jié)果不行)
<html>
<head>
<meta charset="utf-8">
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js">script>
head>
<body>
<script>
// 動態(tài)獲取當前頁面 url, 傳給后端用于簽名
const url = encodeURIComponent(location.href.split('#')[0]);
fetch(`/wechat/index?url=${url}`).then(res => {
return res.json()
}).then(({ signPackage }) => {
const { timestamp, nonceStr, signature, appId } = signPackage
wx.config({
debug: true, // 調(diào)試時可開啟,調(diào)用的所有api的返回值會在客戶端alert出來
appId, // 必填,公眾號的唯一標識
timestamp, // 必填,生成簽名的時間戳
nonceStr, // 必填,生成簽名的隨機串
signature, // 必填,生成簽名的隨機串
jsApiList: ['openLocation'], // 必填,需要使用的JS接口列表
openTagList: ['wx-open-launch-weapp'], // 需要使用的開放標簽列表
})
})
script>
<wx-open-launch-weapp id="launch-btn" username="gh_xxxxxxx" path="pages/brand/brand.html">
<template>
<style>
.btn {
padding: 10px;
}
style>
<button class="btn">打開小程序button>
template>
wx-open-launch-weapp>
<script>
var btn = document.getElementById('launch-btn');
btn.addEventListener('launch', function (e) {
console.log('success');
});
btn.addEventListener('error', function (e) {
console.log('fail', e.detail);
});
script>
body>
html>
復(fù)制代碼
uni-app 項目的 vue 示例代碼
相關(guān)案例查看更多
相關(guān)閱讀
- 云南網(wǎng)站建設(shè)服務(wù)公司
- 云南網(wǎng)絡(luò)營銷顧問
- 百度人工排名
- 云南軟件定制
- 小程序分銷商城
- 百度小程序
- 小程序生成海報
- 云南網(wǎng)站建設(shè)電話
- 全國前十名小程序開發(fā)公司
- 云南網(wǎng)站維護
- 汽車報廢回收管理系統(tǒng)
- 網(wǎng)站建設(shè)價格
- 網(wǎng)站建設(shè)需要多少錢
- 電商網(wǎng)站建設(shè)
- 云南網(wǎng)站建設(shè)案例
- 保險網(wǎng)站建設(shè)公司
- 云南網(wǎng)站建設(shè)首頁
- 前端
- 昆明網(wǎng)站建設(shè)公司
- 買小程序被騙
- 小程序退款
- 二叉樹
- 霸屏推廣
- 云南做軟件
- 網(wǎng)站建設(shè)案例
- 云南網(wǎng)站建設(shè)公司
- 云南省城鄉(xiāng)建設(shè)廳網(wǎng)站
- 網(wǎng)站建設(shè)首選
- 云南網(wǎng)站建設(shè) 網(wǎng)絡(luò)服務(wù)
- 云南網(wǎng)站建設(shè)首選公司