国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
# 一、註冊(cè)微信公眾號(hào)" ># 一、註冊(cè)微信公眾號(hào)
# 二、開(kāi)通權(quán)限
# 三、當(dāng)介面權(quán)限開(kāi)通之後,我們需要為公眾號(hào)碼設(shè)定一個(gè)JS介面安全域名
## 四、當(dāng)安全網(wǎng)域填寫(xiě)成功之後,需要設(shè)定一個(gè)IP白名單
# 五、以上功能需要在公眾號(hào)裡面配置的步驟就全部完成了,以下開(kāi)始將介面放入特定專(zhuān)案中
首頁(yè) 微信小程式 微信開(kāi)發(fā) H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

May 07, 2020 pm 02:52 PM
h5

最近在工作中遇到了一個(gè)功能,需要將我們手機(jī)端的H5頁(yè)面自訂分享到微信朋友、朋友圈、QQ和QQ空間。

下面是我自己百度,然後自己親身測(cè)試得到的一個(gè)方法;下面分享給大家,互相學(xué)習(xí)。

實(shí)現(xiàn)原理:H5的自訂分享需要用到微信公眾平臺(tái)的分享接口,也就是微信網(wǎng)頁(yè)開(kāi)發(fā)中的JSSDK,【具體的說(shuō)明文檔:https://developers.weixin. qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html】使用微信的SDK中的分享接口,如下圖所示:

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

注意:下面的自訂分享功能,只能是在微信的內(nèi)建瀏覽器裡面進(jìn)行分享操作;在其他瀏覽器中是不可以的。

# 一、註冊(cè)微信公眾號(hào)

#首先我們需要開(kāi)通一個(gè)微信公眾號(hào),公眾號(hào)類(lèi)型必須是訂閱號(hào),個(gè)人號(hào)是沒(méi)有分享介面的功能。

# 二、開(kāi)通權(quán)限

當(dāng)我們公眾號(hào)註冊(cè)完成之後,我們需登入微信公眾平臺(tái),去開(kāi)發(fā)-》介面權(quán)限,去開(kāi)通分享介面的權(quán)限【開(kāi)通權(quán)限需認(rèn)證企業(yè)且繳費(fèi)認(rèn)證】,下圖是已經(jīng)認(rèn)證過(guò)的情況:

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

# 三、當(dāng)介面權(quán)限開(kāi)通之後,我們需要為公眾號(hào)碼設(shè)定一個(gè)JS介面安全域名

登入微信公眾平臺(tái),進(jìn)入設(shè)定-》公眾號(hào)設(shè)定-》功能設(shè)置,填寫(xiě)有效的JS介面安全網(wǎng)域【你的專(zhuān)案存取網(wǎng)域】,如下圖所示:

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

## 四、當(dāng)安全網(wǎng)域填寫(xiě)成功之後,需要設(shè)定一個(gè)IP白名單

在點(diǎn)擊開(kāi)發(fā)-》基本設(shè)定-》IP白名單,去填寫(xiě)一個(gè)伺服器IP【你專(zhuān)案所在伺服器的IP位址】,具體原因下面會(huì)說(shuō)到,如下圖所示:

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

# 五、以上功能需要在公眾號(hào)裡面配置的步驟就全部完成了,以下開(kāi)始將介面放入特定專(zhuān)案中

##(1)引入JS文件

在需要呼叫JS介面的頁(yè)面引入如下JS文件, (支援https):http://res.wx.qq.com/open/js/jweixin-1.4.0.js

如需進(jìn)一步提升服務(wù)穩(wěn)定性,當(dāng)上述資源無(wú)法存取時(shí),可改訪問(wèn):http://res2.wx.qq.com/open/js/jweixin-1.4.0.js (支援https)

##(2)透過(guò)config介面注入權(quán)限驗(yàn)證配置

所有需要使用JS-SDK的頁(yè)面必須先註入組態(tài)訊息,否則將無(wú)法呼叫

wx.config({
  debug: true, // 開(kāi)啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶(hù)端alert出來(lái),若要查看傳入的參數(shù),可以在pc端打開(kāi),參數(shù)信息會(huì)通過(guò)log打出,僅在pc端時(shí)才會(huì)打印。
  appId: '', // 必填,公眾號(hào)的唯一標(biāo)識(shí)
  timestamp: , // 必填,生成簽名的時(shí)間戳
  nonceStr: '', // 必填,生成簽名的隨機(jī)串
  signature: '',// 必填,簽名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

上面權(quán)限驗(yàn)證的參數(shù)中,

##1. "appId",是公眾號(hào)的唯一標(biāo)識(shí),可在微信公眾平臺(tái)獲得

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

#2.“timestamp”,時(shí)間戳

3.“nonceStr ”,隨機(jī)字串,【長(zhǎng)度不要超過(guò)32位元】

##4.”signature“,簽名(需要拼接參數(shù),然後加密得到)

5.jsApiList是JS介面列表,如下圖:【連結(jié):https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62】

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

(3)產(chǎn)生簽名“signature”【比較複雜的一個(gè)地方】

#a.產(chǎn)生簽名,需要我們用到幾個(gè)參數(shù),然後將參數(shù)拼接成字串,然後用sha1()方式進(jìn)行加密。

參數(shù)有:noncestr:隨機(jī)字串【這個(gè)需要和權(quán)限驗(yàn)證中的隨機(jī)字串一致】

jsapi_ticket:jsapi_ticket是公眾號(hào)用於呼叫微信JS介面的臨時(shí)票據(jù),正常情況下,jsapi_ticket的有效期限為7200秒,透過(guò)access_token來(lái)取得。

timestamp:時(shí)間戳記【這個(gè)時(shí)間戳記同樣需要和權(quán)限驗(yàn)證中的時(shí)間戳一致,單位是秒】

url:目前網(wǎng)頁(yè)的URL,不包含#及其後面部

#然後將所有參數(shù)拼接成一個(gè)字串,例如:

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value

然后對(duì)上面的字符串進(jìn)行加密【sha1()函數(shù)進(jìn)行加密】,得到signature。

b.現(xiàn)在來(lái)說(shuō)說(shuō)怎樣獲得調(diào)用微信調(diào)用JS接口的臨時(shí)票據(jù)jsapi_ticke

因?yàn)閖sapi_ticket的有效期為7200秒,并且需要通過(guò)access_token來(lái)獲取到,所以我們先獲取access_token;access_token公眾號(hào)的一天獲取次數(shù)有限,2000次,且有效時(shí)間為7200秒,所以我們可以考慮每次獲取到的access_token放入緩存或者讓數(shù)據(jù)表中,在有效期內(nèi)反復(fù)調(diào)用【我是存儲(chǔ)到數(shù)據(jù)表中的】。

下面是我自己寫(xiě)的一個(gè)簡(jiǎn)單類(lèi)和數(shù)據(jù)表結(jié)構(gòu)

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

class Wxapi{
    protected $appid;
    protected $appsecret;
 
    /**
     * 構(gòu)造函數(shù)
     * 2019-12-10
     */
    public function __construct($appid,$appsecret){
        $this->appid=$appid;
        $this->appsecret=$appsecret;
        $this->sessionKey_url="https://api.weixin.qq.com/sns/jscode2session";
        $this->accessToken_url="https://api.weixin.qq.com/cgi-bin/token";
        $this->jsapi_ticket_url="https://api.weixin.qq.com/cgi-bin/ticket/getticket";
        $this->qrcodeUrl="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode";
    }
 
    /**
     * 獲取access_token
     * 2019-12-10
     *
     * @param string  appid         appid
     * @param string  appsecret     appsecret
     * @param string  tableName     表名(wx_account)
     * @return string token         token
     */
    public function getToken($appid,$appsecret,$tableName){
        $accountInfo = DB::table($tableName)->where('appid',$appid)->where('appsecret',$appsecret)->first();
        $now_time = time();//當(dāng)前時(shí)間戳
        if(empty($accountInfo)){
            return false;
        }
        if($now_time-$accountInfo->access_token_time<7000){
            $token = $accountInfo->access_token;
            return $token;
        }else{
            $get_token_url = $this->accessToken_url."?grant_type=client_credential&appid=".$appid.&#39;&secret=&#39;.$appsecret;
            $getToken_json = curl_get($get_token_url);
            $getToken_arr = json_decode($getToken_json[&#39;output&#39;],true);
            $token = $getToken_arr[&#39;access_token&#39;];
            $arr = [
                &#39;access_token_time&#39;=>time(),
                &#39;access_token&#39;=>$token,
                &#39;updated_at&#39;=>date(&#39;Y-m-d H:i:s&#39;,time())
            ];
            $res = DB::table($tableName)->where(&#39;appid&#39;,$appid)->where(&#39;appsecret&#39;,$appsecret)->update($arr);
            if($res){
                return $token;
            }else{
                return false;
            }
        }
    }
 
    /**
     * 獲取jssdk-ticket
     * 2019-12-10
     *
     * @param string  appid         appid
     * @param string  appsecret     appsecret
     * @param string  tableName     表名(wx_account)
     * @return string token         token
     */
    public function getJssdkTicket($appid,$appsecret,$tableName){
        $accountInfo = DB::table($tableName)->where(&#39;appid&#39;,$appid)->where(&#39;appsecret&#39;,$appsecret)->first();
        if(empty($accountInfo)){
            return false;
        }
        $now_time = time();//當(dāng)前時(shí)間戳
        if($now_time-$accountInfo->jsapi_ticket_time<7000){
            $jsapi_ticket = $accountInfo->jsapi_ticket;
            return $jsapi_ticket;
        }else{
            $access_token=$this->getToken($appid,$appsecret,$tableName);
            if(!$access_token){
                return false;
            }
            $get_jsapi_ticket_url = $this->jsapi_ticket_url."?access_token=".$access_token."&type=jsapi";
            $getJssdkTicket_json = curl_get($get_jsapi_ticket_url);
            $getJssdkTicket_arr = json_decode($getJssdkTicket_json[&#39;output&#39;],true);
            $jsapi_ticket = $getJssdkTicket_arr[&#39;ticket&#39;];
            $arr = [
                &#39;jsapi_ticket_time&#39;=>time(),
                &#39;jsapi_ticket&#39;=>$jsapi_ticket,
                &#39;updated_at&#39;=>date(&#39;Y-m-d H:i:s&#39;,time())
            ];
            $res = DB::table($tableName)->where(&#39;appid&#39;,$appid)->where(&#39;appsecret&#39;,$appsecret)->update($arr);
            if($res){
                return $jsapi_ticket;
            }else{
                return false;
            }
        }
    }
}

這邊我們的操作是,我們后端獲取jsapi_ticket返回給前端,然后前端進(jìn)行權(quán)限驗(yàn)證。

為了方便調(diào)試,我們可以在微信開(kāi)發(fā)者工具中進(jìn)行調(diào)試。下載鏈接:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

當(dāng)頁(yè)面去調(diào)用微信的JSSDK接口時(shí),成功可以看到對(duì)應(yīng)的微信返回?cái)?shù)據(jù)。

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

如果出現(xiàn)錯(cuò)誤,請(qǐng)根據(jù)開(kāi)發(fā)文檔進(jìn)行修改:

11H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

然后在手機(jī)上進(jìn)行分享,測(cè)試是否成功;下面是我成功的操作。

朋友圈分享:

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

微信群組分享:

H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

QQ分享:

1H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

以上是H5頁(yè)面自訂標(biāo)題、連結(jié)、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

h5是指什麼 h5是指什麼 Aug 02, 2023 pm 01:52 PM

H5是指HTML5,是HTML的最新版本,H5是一個(gè)功能強(qiáng)大的標(biāo)記語(yǔ)言,為開(kāi)發(fā)者提供了更多的選擇和創(chuàng)造空間,它的出現(xiàn)推動(dòng)了Web技術(shù)的發(fā)展,使得網(wǎng)頁(yè)的交互和效果更加出色,隨著H5技術(shù)的逐漸成熟和普及,相信它將在互聯(lián)網(wǎng)的世界中發(fā)揮越來(lái)越重要的作用。

如何區(qū)分H5,WEB前端,大前端,WEB全端? 如何區(qū)分H5,WEB前端,大前端,WEB全端? Aug 03, 2022 pm 04:00 PM

本文帶你快速區(qū)分H5、WEB前端、大前端、WEB全棧,希望對(duì)需要的朋友有幫助!

H5指的是什麼?探索上下文 H5指的是什麼?探索上下文 Apr 12, 2025 am 12:03 AM

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5:網(wǎng)絡(luò)標(biāo)準(zhǔn)和技術(shù)的發(fā)展 H5:網(wǎng)絡(luò)標(biāo)準(zhǔn)和技術(shù)的發(fā)展 Apr 15, 2025 am 12:12 AM

Web標(biāo)準(zhǔn)和技術(shù)從HTML4、CSS2和簡(jiǎn)單的JavaScript演變至今,經(jīng)歷了顯著的發(fā)展。1)HTML5引入了Canvas、WebStorage等API,增強(qiáng)了Web應(yīng)用的復(fù)雜性和互動(dòng)性。2)CSS3增加了動(dòng)畫(huà)和過(guò)渡功能,使頁(yè)面效果更加豐富。3)JavaScript通過(guò)Node.js和ES6的現(xiàn)代化語(yǔ)法,如箭頭函數(shù)和類(lèi),提升了開(kāi)發(fā)效率和代碼可讀性,這些變化推動(dòng)了Web應(yīng)用的性能優(yōu)化和最佳實(shí)踐的發(fā)展。

h5怎麼實(shí)現(xiàn)web端向上滑動(dòng)載入下一頁(yè) h5怎麼實(shí)現(xiàn)web端向上滑動(dòng)載入下一頁(yè) Mar 11, 2024 am 10:26 AM

實(shí)現(xiàn)步驟:1、監(jiān)聽(tīng)頁(yè)面的滾動(dòng)事件;2、判斷捲動(dòng)至頁(yè)面底部;3、載入下一頁(yè)資料;4、更新頁(yè)面捲動(dòng)位置即可。

h5如何使用position h5如何使用position Dec 26, 2023 pm 01:39 PM

在H5中使用position屬性可以透過(guò)CSS控制元素的定位方式:1、相對(duì)定位relative,語(yǔ)法為「style="position: relative;」;2、絕對(duì)定位absolute,語(yǔ)法為「style="position: absolute; 」;3、固定定位fixed,語(yǔ)法為「style="position: fixed;」等等。

H5代碼:可訪問(wèn)性和語(yǔ)義HTML H5代碼:可訪問(wèn)性和語(yǔ)義HTML Apr 09, 2025 am 12:05 AM

H5通過(guò)語(yǔ)義化元素和ARIA屬性提升網(wǎng)頁(yè)的可訪問(wèn)性和SEO效果。 1.使用、、等元素組織內(nèi)容結(jié)構(gòu),提高SEO。 2.ARIA屬性如aria-label增強(qiáng)可訪問(wèn)性,輔助技術(shù)用戶(hù)可順利使用網(wǎng)頁(yè)。

H5:如何增強(qiáng)網(wǎng)絡(luò)上的用戶(hù)體驗(yàn) H5:如何增強(qiáng)網(wǎng)絡(luò)上的用戶(hù)體驗(yàn) Apr 19, 2025 am 12:08 AM

H5通過(guò)多媒體支持、離線存儲(chǔ)和性能優(yōu)化提升網(wǎng)頁(yè)用戶(hù)體驗(yàn)。 1)多媒體支持:H5的和元素簡(jiǎn)化開(kāi)發(fā),提升用戶(hù)體驗(yàn)。 2)離線存儲(chǔ):WebStorage和IndexedDB允許離線使用,提升體驗(yàn)。 3)性能優(yōu)化:WebWorkers和元素優(yōu)化性能,減少帶寬消耗。

See all articles