H5 ページのカスタム タイトル、リンク、説明、WeChat 友達への写真共有、モーメント、QQ、QQ スペース
最近、仕事で、携帯電話の H5 ページをカスタマイズして、WeChat の友人、モーメント、QQ、および QQ スペースと共有する必要がある機能に遭遇しました。
以下は私が Baidu から入手し、自分でテストした方法です。みんなと共有してお互いから学びましょう。
実装原則: H5 のカスタム共有には、WeChat パブリック プラットフォームの共有インターフェイス (WeChat Web 開発における JSSDK) の使用が必要です [具体的なドキュメント: https://developers.weixin.qq.com/doc/ offiaccount/OA_Web_Apps/JS-SDK.html] 以下に示すように、WeChat の SDK の共有インターフェイスを使用します。
注: 次のカスタム共有機能は、WeChat の組み込みブラウザでのみ使用できます。 共有操作は次のとおりです。これは他のブラウザでは不可能です。
# 1. WeChat パブリック アカウントを登録します
まず、WeChat パブリック アカウントを開設する必要があります。パブリック アカウントの種類は、サブスクリプション アカウントである必要があります。個人アカウントには、インターフェイスを共有する機能がありません。
# 2. 権限をアクティブ化します
公式アカウントの登録が完了したら、WeChat パブリック プラットフォームにログインし、開発 - 「インターフェイス権限」に移動し、共有インターフェイスの権限をアクティブ化する必要があります [権限をアクティブ化するには、次の手順が必要です]エンタープライズ認証と支払い認証】で、以下に示すように認証された状況です:
# 3. インターフェース権限が有効になったら、公式アカウントに JS インターフェースのセキュアドメイン名を設定する必要があります
WeChat公式プラットフォームにログインし、設定-「公式アカウント設定」-「機能設定」に進み、以下の図に示すように、有効なJSインターフェースのセキュリティ・ドメイン名[プロジェクトのアクセス・ドメイン名]を入力します:
# 4. セキュリティ ドメイン名が正常に入力されたら、IP ホワイトリストを構成する必要があります
[開発] - >> [基本設定] -> [IP ホワイトリスト] をクリックし、サーバー IP [プロジェクトが配置されているサーバーの IP アドレス] を入力します。以下の図に示すように、具体的な理由は次のとおりです:
# 5. 上記の機能は公式アカウントで設定する必要があります。手順はすべて完了しました。インターフェイスを特定のプロジェクトに組み込み始めましょう。
## (1) JS ファイルを導入します
JS インターフェースを呼び出す必要があるページに次の JS ファイルを導入します (https をサポート): http://res.wx.qq.com/open/ js/jweixin-1.4.0.js
上記のリソースにアクセスできないときにサービスの安定性をさらに向上させる必要がある場合は、http://res2.wx.qq .com/open/js/jweixin-1.4 にアクセスしてください。 .0.js (https をサポート)
## (2) config インターフェイスを介して権限検証設定を挿入します
JS-SDK を使用する必要があるすべてのページは、最初に設定情報を挿入する必要があります。そうしないと、 call
wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名 jsApiList: [] // 必填,需要使用的JS接口列表 });
上記の権限検証のパラメーターのうち、
1. 「appId」は、WeChat パブリック プラットフォームで取得できる公式アカウントの一意の識別子です
2.
3. "nonceStr"、ランダムな文字列、[長さは 32 文字を超えてはなりません] 4. "signature"、署名 (パラメーターを結合して暗号化する必要があります) 5.jsApiList は、次のような JS インターフェイスのリストです。以下に示す: [リンク : https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62](3) 署名「signature」を生成します。複雑な場所]
a. 署名を生成するには、いくつかのパラメーターを使用し、それらのパラメーターを文字列に結合し、sha1() を使用して暗号化する必要があります。
パラメータは次のとおりです: noncestr: ランダムな文字列 [これは権限検証のランダムな文字列と一致する必要があります]
jsapi_ticket: jsapi_ticket はパブリック アカウントが WeChat を呼び出すために使用する一時的なチケットですJSインターフェース、通常 この場合、access_tokenで取得したjsapi_ticketの有効期限は7200秒です。
timestamp: タイムスタンプ [このタイムスタンプも、権限検証のタイムスタンプと一致している必要があります。単位は秒です]
url: # 以降を除く、現在の Web ページの URL文字
次に、すべてのパラメータを文字列に連結します。例:
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value
然后对上面的字符串进行加密【sha1()函数进行加密】,得到signature。
b.现在来说说怎样获得调用微信调用JS接口的临时票据jsapi_ticke
因为jsapi_ticket的有效期为7200秒,并且需要通过access_token来获取到,所以我们先获取access_token;access_token公众号的一天获取次数有限,2000次,且有效时间为7200秒,所以我们可以考虑每次获取到的access_token放入缓存或者让数据表中,在有效期内反复调用【我是存储到数据表中的】。
下面是我自己写的一个简单类和数据表结构
class Wxapi{ protected $appid; protected $appsecret; /** * 构造函数 * 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();//当前时间戳 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.'&secret='.$appsecret; $getToken_json = curl_get($get_token_url); $getToken_arr = json_decode($getToken_json['output'],true); $token = $getToken_arr['access_token']; $arr = [ 'access_token_time'=>time(), 'access_token'=>$token, 'updated_at'=>date('Y-m-d H:i:s',time()) ]; $res = DB::table($tableName)->where('appid',$appid)->where('appsecret',$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('appid',$appid)->where('appsecret',$appsecret)->first(); if(empty($accountInfo)){ return false; } $now_time = time();//当前时间戳 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['output'],true); $jsapi_ticket = $getJssdkTicket_arr['ticket']; $arr = [ 'jsapi_ticket_time'=>time(), 'jsapi_ticket'=>$jsapi_ticket, 'updated_at'=>date('Y-m-d H:i:s',time()) ]; $res = DB::table($tableName)->where('appid',$appid)->where('appsecret',$appsecret)->update($arr); if($res){ return $jsapi_ticket; }else{ return false; } } } }
这边我们的操作是,我们后端获取jsapi_ticket返回给前端,然后前端进行权限验证。
为了方便调试,我们可以在微信开发者工具中进行调试。下载链接:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
当页面去调用微信的JSSDK接口时,成功可以看到对应的微信返回数据。
如果出现错误,请根据开发文档进行修改:
然后在手机上进行分享,测试是否成功;下面是我成功的操作。
朋友圈分享:
微信群组分享:
QQ分享:
以上がH5 ページのカスタム タイトル、リンク、説明、WeChat 友達への写真共有、モーメント、QQ、QQ スペースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









H5 は、HTML の最新バージョンである HTML5 を指します。H5 は、開発者により多くの選択肢と創造的なスペースを提供する強力なマークアップ言語です。その出現は、Web テクノロジーの発展を促進し、Web ページのインタラクションと効果をより優れたものにします。H5 テクノロジーとして徐々に成熟して普及していき、インターネットの世界でますます重要な役割を果たしていくと思います。

この記事は、H5、WEB フロントエンド、大規模フロントエンド、WEB フルスタックを簡単に区別するのに役立ちます。

H5 では、position 属性を使用して、CSS を通じて要素の位置を制御できます: 1. 相対位置、構文は「style="position:relative;」です。 2. 絶対位置、構文は「style="position:」です。 Absolute;" "; 3. 固定位置、構文は「style="position:fixed;」などです。

実装手順: 1. ページのスクロール イベントを監視する; 2. ページが一番下までスクロールしたかどうかを判断する; 3. データの次のページをロードする; 4. ページのスクロール位置を更新する。

レンダリング記述は vue.js に基づいており、他のプラグインやライブラリに依存せず、基本的な機能は element-ui と一致しており、モバイル端末の違いに合わせて内部実装にいくつかの調整が加えられています。現在の構築プラットフォームは uni-app 公式スキャフォールディングを使用して構築されており、現在ほとんどのモバイル端末には h6 と WeChat ミニプログラムの 2 種類が搭載されているため、複数の端末で 1 セットのコードを実行する技術の選択に非常に適しています。実装アイデアのコア API: と に対応する、provide と inject を使用します。コンポーネントでは、すべてのインスタンスを格納するために変数 (配列) が内部的に使用され、転送されるデータは Provide を通じて公開されます。コンポーネントは内部で Inject を使用して親コンポーネントから提供されたデータを受け取り、最後に独自の属性をメソッドの送信

この記事では、新しい H5 プロモーション タグについて説明します。困っている友人のお役に立てれば幸いです。

HTML5 と PHP は、Web 開発で一般的に使用される 2 つのテクノロジです。前者はページ レイアウト、スタイル、インタラクションの構築に使用され、後者はサーバー側のビジネス ロジックとデータ ストレージの処理に使用されます。 HTML5 と PHP の関連知識を詳しく見ていきましょう。

H5 には直接的なキャッシュ メカニズムはありませんが、Web Storage API、IndexedDB、Service Workers、Cache API、Application Cache などのテクノロジーを組み合わせることで、強力なキャッシュ機能を実現し、アプリケーションのパフォーマンス、可用性、スケーラビリティを向上させることができます。さまざまなニーズやアプリケーションシナリオに応じて選択して使用できます。詳細な紹介: 1. Web Storage API は、H5 によって提供されるシンプルなものです。
