国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HTML實現(xiàn)微信小程序跳轉全指南,附代碼示例和開發(fā)注意事項

這篇具有很好參考價值的文章主要介紹了HTML實現(xiàn)微信小程序跳轉全指南,附代碼示例和開發(fā)注意事項。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

前言

由于微信官方限制了URL Scheme跳轉,本文實現(xiàn)的是html跳轉微信小程序,僅限微信內部調轉。如果需要外部跳轉微信小程序,可使用urlscheme.generate,后端獲取openlink官方文檔。短信、網頁場景的話建議使用openlink。


提示:以下是本篇文章正文內容,下面案例可供參考

一、開發(fā)前準備

1.擁有一個認證的微信公眾號(是公眾號不是訂閱號)
2.公眾號關聯(lián)()微信小程序(關聯(lián)方法可以登錄微信公眾平臺查找)
3.配置IP白名單(也在微信公眾平臺);
4.配置js安全域名(也在微信公眾平臺,需要把一個文件放在你的本地服務上,其實也可以寫一個request。具體流程百度一下)

二、前端

1.官方文檔鏈接: 點擊這里

代碼如下(示例):

<wx-open-launch-weapp 
				id="launch-btn" 
				username="gh_*****" 
				path="pages/home/home">
				<template>
					<!-- 樣式方法 -->
					<style> 
					</style>
					<div class="btn-card"><h5 class="btn">打開小程序</h5></div>
			</template>
			</wx-open-launch-weapp>導入<script typet="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script><


說明一下:建議看官方文檔(雖然文檔垃圾一bi)。
1.標簽是微信的所以我們要引入jwei-xin-1.6.0.js
2.username是小程序原始id,gh_開頭的(點你的小程序-更多資料,就可以就看到了
3.template里放的是打開小程序的那個按鈕,這里有個巨坑!按鈕不顯示的問題:要先wx.config簽名驗證成功它才會顯示出來,所以我們要在onload里進行簽名驗證。如果你是云開發(fā)的話,就不需要簽名了。

2.簽名wx.config

代碼如下(示例):

wx.config({
						// 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印
						// debug: true, 
						// 必填,公眾號的唯一標識
						appId: data.data.appId,
						// 必填,生成簽名的時間戳
						timestamp: data.data.timestamp,
						// 必填,生成簽名的隨機串
						nonceStr: data.data.nonceStr,
						// 必填,簽名
						signature: data.data.signature,
						// 必填,需要使用的JS接口列表,且任意填寫
						jsApiList: ['scanQRCode'],
						// 可選,需要使用的開放標簽列表,wx-open-launch-weapp 指H5跳轉小程序 wx-open-launch-app 指H5跳轉app
						openTagList: ["wx-open-launch-weapp"],
					wx.ready(function () {
						var btn = document.getElementById('launch-btn');
						// launch 用戶點擊跳轉按鈕并對確認彈窗進行操作后觸發(fā)
						btn.addEventListener('launch', function (e) {
							console.log(e,'success');
						});
						// error 用戶點擊跳轉按鈕后出現(xiàn)錯誤
						btn.addEventListener('error', function (e) {
							console.log(e.detail,'fail');
						});
					});
					wx.error(function (res) {
						console.log(res, 'error');
						// config信息驗證失敗會執(zhí)行error函數,如簽名過期導致驗證失敗,具體錯誤信息可以打開config的debug模式查看,也可以在返回的res參數中查看,對于SPA可以在這里更新簽名
					});


1.這個就是簽名了,可以用ajax請求后臺拿到timestamp,nonceStr,signature,
2.拿到signature后可以在微信官方驗證一下鏈接: 簽名驗證
2.打開debug:true,失敗的話會返回錯誤信息的。我這里是js安全域名沒配置
H5跳轉小程序,短信跳轉小程序,HTML頁面跳轉小程序

3.成功的話他會返回errMsg:config:ok,然后標簽按鈕就會顯示出來,點擊就可以跳轉了,跳不了的話,btn.addEventListener()它會返回錯誤信息給你的
H5跳轉小程序,短信跳轉小程序,HTML頁面跳轉小程序


三、后端

后端主要就是一個獲取簽名返回給前端進行驗證的一個作用了,步驟的話:


1.獲取微信access_token
2.用access_token獲取jsapi_ticket
3.對jsapi_ticket等字段拼接進行sha1算法得到singature,返回給前端

1.獲取access_token鏈接: 官方文檔

// An highlighted blockpublic static String getAccessToken() {
    String access_token = "";
    String grant_type = "client_credential";//獲取access_token填寫client_credential 
    String AppId="APPID";//第三方用戶唯一憑證
    String secret="APPSECRET";//第三方用戶唯一憑證密鑰,即appsecret 
    //這個url鏈接地址和參數皆不能變
    String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type="+grant_type+"&appid="+AppId+"&secret="+secret;
     
    try {
        URL urlGet = new URL(url);
        HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();
        http.setRequestMethod("GET"); // 必須是get方式請求
        http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
        http.setDoOutput(true);
        http.setDoInput(true);
        System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 連接超時30秒
        System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 讀取超時30秒
        http.connect();
        InputStream is = http.getInputStream();
        int size = is.available();
        byte[] jsonBytes = new byte[size];
        is.read(jsonBytes);
        String message = new String(jsonBytes, "UTF-8");
        JSONObject demoJson = JSONObject.fromObject(message);
        access_token = demoJson.getString("access_token");
        is.close();
    } catch (Exception e) {
            e.printStackTrace();
    }
    return access_token;}


2.獲取jsapi_ticket鏈接: 官方文檔

圖片: H5跳轉小程序,短信跳轉小程序,HTML頁面跳轉小程序
1.ticket有效期是2小時。后面你要是需要調微信api的話,有個時效性,所以我們需要放入緩存。

// An highlighted blockpublic static String getTicket(String access_token) {
    String ticket = null;
    String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+ access_token +"&type=jsapi";//這個url鏈接和參數不能變
    try {
        URL urlGet = new URL(url);
        HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();
        http.setRequestMethod("GET"); // 必須是get方式請求
        http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
        http.setDoOutput(true);
        http.setDoInput(true);
        System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 連接超時30秒
        System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 讀取超時30秒
        http.connect();
        InputStream is = http.getInputStream();
        int size = is.available();
        byte[] jsonBytes = new byte[size];
        is.read(jsonBytes);
        String message = new String(jsonBytes, "UTF-8");
        JSONObject demoJson = JSONObject.fromObject(message);
        ticket = demoJson.getString("ticket");
        is.close();
    } catch (Exception e) {
            e.printStackTrace();
    }
    return ticket;}


3.sha1加密 官方文檔

注.sha1算法自己百度或者照著我這版敲(100%可用)
	//時間戳和隨機字符串
	String noncestr = UUID.randomUUID().toString().replace("-", "").substring(0, 16);//隨機字符串
    String timestamp = String.valueOf(System.currentTimeMillis() / 1000);//時間戳
    //對str進行sha1加密,注意拼接順序不可變,注意大小寫!這個url為前端動態(tài)獲取的url,url的格式要注意一下(https://******)
     String str = "jsapi_ticket="+jsapi_ticket+"&noncestr="+noncestr+"&timestamp="+timestamp+"&url="+url;


圖片: H5跳轉小程序,短信跳轉小程序,HTML頁面跳轉小程序
把前端wx.config需要的這幾個值,在controller層弄個map返回給前端就行了。

總結

坑還是不少的
1.timeStamp大小寫要注意下。
2.appid為公眾號appid,并不是小程序的appid。
3.wx-open-launch-weapp標簽內按鈕不顯示,需要在onload先wx.config先驗簽,才會顯示。
4.js安全域名配置(直接配置一級域名就行了,不要把https:加在上面了)
5.公眾號和小程序都要是認證過且關聯(lián)的。
6.微信版本要求為:7.0.12及以上。 系統(tǒng)版本要求為:iOS 10.3及以上、Android 5.0及以上。
7.其它的暫時想不起來了,有問題百度。(上面的代碼,除sha1算法外,其它的要根據個人實際情況進行開發(fā)。不要全搬)
8.感謝閱讀~有用的話,點個贊吧,Thanks?(?ω?)?文章來源地址http://www.zghlxwxcb.cn/news/detail-501066.html

到了這里,關于HTML實現(xiàn)微信小程序跳轉全指南,附代碼示例和開發(fā)注意事項的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 微信H5(公眾號)跳轉微信小程序實現(xiàn)及其傳參

    其中: ????????username:目標小程序的原始id; ????????path : 所需跳轉的小程序內頁面路徑及參數( 傳參采取掛參的形式傳遞 ); ps:目標小程序接收參數時要在index的onload里面接收直接 options.XXX就可以。 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-lin

    2024年02月09日
    瀏覽(28)
  • H5跳轉微信小程序,通過獲取URL Scheme,實現(xiàn)短信跳轉小程序,微信跳轉小程序,郵件跳轉小程序,外部鏈接跳轉小程序

    H5跳轉微信小程序,通過獲取URL Scheme,實現(xiàn)短信跳轉小程序,微信跳轉小程序,郵件跳轉小程序,外部鏈接跳轉小程序

    H5鏈接跳轉小程序有2種方式: 第一種:通過微信官方提供的標簽wx-open-launch-weapp,打開小程序 第二種:通過獲取URL Scheme實現(xiàn)鏈接跳轉小程序 官方文檔https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html#21 注意: 開放范圍:針對非個人主體小程序開放。 1、缺點 1)

    2024年02月13日
    瀏覽(105)
  • 微信小程序02-輪播圖實現(xiàn)與圖片點擊跳轉

    微信小程序02-輪播圖實現(xiàn)與圖片點擊跳轉

    在小程序01中,已經學習了如何制作底部導航欄,本節(jié)讓我們一起學習如何制作輪播圖,以及點擊輪播圖完成頁面跳轉。 注:(1)前期學習,我這里用的本地的圖片,后期的話,會對接后端接口,動態(tài)獲取數據,前期方便學習,就暫時用的本地圖片。(2)關于圖片跳轉地址

    2024年02月16日
    瀏覽(210)
  • 在微信小程序中跳轉到另一個小程序(多種實現(xiàn)方式)

    在微信小程序中跳轉到另一個小程序(多種實現(xiàn)方式)

    今天在項目中剛好遇到一個到從當前小程序中跳轉到另一個小程序,下面分享一下我總結的幾個比較簡單的跳轉方式吧。 如果不給path屬性是默認跳到目標小程序首頁,如果想跳到其他頁面就要配置path屬性,這樣就能實現(xiàn)從當前微信小程序跳轉到另外一個小程序啦~ 也有辦法

    2024年02月11日
    瀏覽(29)
  • 微信小程序分類圖片通過id跳轉到詳情頁,不同分類實現(xiàn)定向跳轉

    微信小程序分類圖片通過id跳轉到詳情頁,不同分類實現(xiàn)定向跳轉

    微信小程序分類圖片通過id跳轉到詳情頁,不同分類實現(xiàn)定向跳轉 1.實現(xiàn)循環(huán)展示排列 inde.wxml index.wxss index.js 頁面展示 2.跳轉到大分類頁面 class.wxml class.js 結果:

    2024年02月11日
    瀏覽(88)
  • uniapp實現(xiàn)app跳轉微信小程序然后跳回app

    首先app頁面代碼如下: 小程序的代碼 這樣就實現(xiàn)效果了,如果不行看下是否在微信開放平臺給app獲取了跳轉小程序的能力,一般是通過了審核的app就有這能力.

    2024年04月27日
    瀏覽(21)
  • uniapp實現(xiàn)微信小程序內嵌h5頁面的相互跳轉

    前期準備3個頁面,小程序內2個,h5一個。 小程序內:操作頁pageA,展示容納h5的展示頁PageWebview.vue。 h5:h5頁面pageB,并且有可以訪問的線上url。 【微信小程序pageA-內嵌h5頁面pageB】 1.1 pageA實現(xiàn)點擊跳轉,將pageB的訪問地址url拼接,并進入展示頁PageWebview.vue 1.2 PageWebview.vue頁面用

    2024年02月12日
    瀏覽(95)
  • 情侶積分微信小程序零基礎開發(fā)教程(附代碼及開發(fā)指南)

    情侶積分微信小程序零基礎開發(fā)教程(附代碼及開發(fā)指南)

    本文最新版本 在idofSunChonggao 的基礎上進行開發(fā), 感謝! 且感謝初版(UxxHans)! ? 如果本倉庫對您有所幫助,您的fork或star就是對我最大的鼓勵,謝謝! 改了還蠻多的,具體看界面展示吧~ 零前端基礎,全憑愛意。代碼存在諸多不足和bug,僅供參考。 ? 增加任務類型選擇:

    2024年02月09日
    瀏覽(21)
  • 微信小程序內頁跳轉登錄,登錄完成后攜帶參數重新回到之前頁面實現(xiàn)方法

    第一步:在app.js或utils.js中添加以下兩個方法: 第二步:在跳轉到登錄頁面跳轉前調用setCallbackUrl方法(獲當前頁面的路徑和參數存本地),登錄頁面登錄成功后調用getCallBackUrl方法(提取之前存的路徑和參數返回),如果沒有就在catch中執(zhí)行登錄后的正常邏輯,比如跳轉到默

    2024年02月02日
    瀏覽(89)
  • 微信小程序登錄頁驗證與頁面跳轉(二) ---結合SpringBoot和MySQL實現(xiàn)多用戶登錄

    微信小程序登錄頁驗證與頁面跳轉(二) ---結合SpringBoot和MySQL實現(xiàn)多用戶登錄

    Spring Boot的開發(fā)環(huán)境如下: 1、IDEA:2020 2、JDK版本:1.8 3、MySQL 版本:8 代碼如下(示例): 打開IDEA,新建項目: 這里選擇Spring lnitializr: 在接下來的頁面中進行如下配置: 進行下一步:選擇SpringBoot的版本,這里選擇的是2.7.14 然后: 設置項目所在路徑和設置項目名稱: 項

    2024年01月22日
    瀏覽(93)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包