WeChatミニプログラムはuni-appを通じて世界中に共有されます

WeChatミニプログラムはuni-appを通じて世界中に共有されます

実際の使用では、ミニプログラムを友人や友人サークルと共有する必要があることが多く、通常は一度に 1 ページずつ設定されます。

公式サイト共有紹介: https://uniapp.dcloud.io/api/plugins/share?id=onshareappmessage

共有する必要がある各ページは個別に記述する必要があります

コピーエクスポート デフォルト {
//友達に送信 onShareAppMessage(res) {
    if (res.from === 'button'){// ページ内の共有ボタンから console.log(res.target)
    }
    戻る {
      タイトル: 「共有タイトルをカスタマイズ」
      パス: '/pages/test/test?id=123'
    }
  },
  //Momentsに共有 onShareTimeline(res) {
     戻る {
      タイトル: 「共有タイトルをカスタマイズ」
      パス: '/pages/test/test?id=123'
    }
  }
}

コードが繰り返されるだけでなく、混乱して誤ってパラメータを見逃したり、変更し忘れたりすることも非常に起こりやすくなります。

共有パラメータ設定の概要:

グローバル共有

各ページのコードの重複を減らし、グローバルに共有コードを設定します。

まず新しいディレクトリにutilsフォルダを作成し、wxShare.jsを作成します。

作成が成功したら、main.jsにwxShare.jsをインポートします。

//共有設定
'./utils/wxShare.js' から share をインポートします。
Vue.mixin(共有)

wxShare.js の紹介

dataonShareAppMessageonShareTimelineを含む基本的な js ページを作成します。

data :共有パラメータ設定:初期設定図を参照してください

onShareAppMessage : WeChat友達に共有する設定

onShareTimeline : Momentsへの共有設定

コピーエクスポート デフォルト {
    データ() {
        戻る {
            共有:
                // 転送されたタイトル(デフォルトのタイトル)
                タイトル: 'デフォルトのタイトル - 共有タイトル',
                // デフォルトは現在のページです。これは '/' で始まるフルパスである必要があります。パス: ''
                //カスタムイメージパス。ローカルファイルパス、コードパッケージファイルパス、またはネットワークイメージパスにすることができます。
                //PNG と JPG をサポートします。imageUrl が渡されない場合、デフォルトのスクリーンショットが使用されます。表示される画像のアスペクト比は5:4です
                画像URL: ''
            }
        }
    },
    // 友達に送信 onShareAppMessage(res) {
         戻る {
          タイトル: 「友達に送る」
          パス: '/pages/test/test'
        }
    },
    //Momentsに共有 onShareTimeline(res) {
         戻る {
          タイトル:「瞬間を共有」
          パス: '/pages/test/test'
        }
    }
}

これで、最も基本的なグローバル共有が完了しました。注意深い人は、データ内のパラメータが使用されていないこと、共有されている各パラメータが固定されていて動的に設定できないことに気付くかもしれません。これは、理想的なグローバル共有とは大きく異なります。

getCurrentPages()関数

getCurrentPages()関数は、現在のページ スタックのインスタンスを取得するために使用されます。このインスタンスは、スタックの順序に従った配列の形式で提供されます。最初の要素はホームページで、最後の要素は現在のページです。

注意: getCurrentPages()はページ スタックを表示するためにのみ使用されます。ページ ステータス エラーを回避するために、ページ スタックを変更しないでください。

公式サイト紹介: https://uniapp.dcloud.io/collocation/frame/window?id=getcurrentpages

onShareAppMessageを最適化して友達と共有する

コピー//友達に送信 onShareAppMessage(res) {
    // 読み込まれたページを取得する let pages = getCurrentPages(),
        // 現在のページのオブジェクトを取得します。view = pages[pages.length - 1];
    //共有ページパス this.share.path = `/${view.route}`;
    // 転送パラメータは this.share を返します。
},

ページパスを動的に取得して共有します。

現時点では明らかな問題があります。ミニプログラムのタイトルを直接取得する方法が現在ありません。

ページ共有タイトルを設定する

共有する必要がある各ページのタイトルを動的に設定することで、国を救う方法を見つけましょう

コピーエクスポート デフォルト {
    オンロード() {
        /*
            共有するページのライフサイクルで現在のページ共有タイトルを設計します。this.share は wxShare.js で定義された共有データを取得するために使用されます*/
       this.share.title = "現在のページの共有タイトル"
    },
}

エフェクト表示

ボタン友達に共有

<button open-type="share"> )

コードは上記と変わりませんが、構成パラメータ用の別の領域がある点が異なります。

コピー//友達に送信 onShareAppMessage(res) {
    // ページ内のボタンから転送 if (res.from == 'button') {
        console.log("ボタン転送 - 構成");
    } 
    // 読み込まれたページを取得する let pages = getCurrentPages(),
        // 現在のページのオブジェクトを取得します。view = pages[pages.length - 1];
    //共有ページパス this.share.path = `/${view.route}`;
    // 転送パラメータは this.share を返します。
}

onShareTimelineを最適化してMomentsに共有する

設定は基本的に友達と共有する場合と同じです。

copy//Momentsに共有 onShareTimeline(res) {
    // 読み込まれたページを取得する let pages = getCurrentPages(),
        // 現在のページのオブジェクトを取得します。view = pages[pages.length - 1];
    // console.log("読み込まれたページを取得する", pages);
    //console.log("現在のページのオブジェクト", view);
    this.share.path = `/${view.route}`;
    // 転送パラメータは this.share を返します。
}

グローバル共有の基本的な構成は上記の通りです。

動的変更ページ パスの共有には問題はありませんが、動的共有パスとパラメータの構成にはまだ問題があります。

wxShare.js コード

コピーエクスポート デフォルト {
    データ() {
        戻る {
            共有:
                // 転送されたタイトル(デフォルトのタイトル)
                タイトル: 'デフォルトのタイトル - 共有タイトル',
                // デフォルトは現在のページです。これは '/' で始まるフルパスである必要があります。パス: ''
                //カスタムイメージパス。ローカルファイルパス、コードパッケージファイルパス、またはネットワークイメージパスにすることができます。
                //PNG と JPG をサポートします。imageUrl が渡されない場合、デフォルトのスクリーンショットが使用されます。表示される画像のアスペクト比は5:4です
                画像URL: ''
            }
        }
    },
    /*
     共有するページのライフサイクルで現在のページ共有タイトルをデザインする onLoad() {
         this.share.title = "現在のページの共有タイトル"
     },
     */
    // 友達に送信 onShareAppMessage(res) {
        // ページ内のボタンから転送 if (res.from == 'button') {
            console.log("ボタン転送 - 構成");
        }
        // 読み込まれたページを取得する let pages = getCurrentPages(),
            // 現在のページのオブジェクトを取得します。view = pages[pages.length - 1];
        this.share.path = `/${view.route}`;
        
        // 転送パラメータは this.share を返します。
    },
    //Momentsに共有 onShareTimeline(res) {
        // 読み込まれたページを取得する let pages = getCurrentPages(),
            // 現在のページのオブジェクトを取得します。view = pages[pages.length - 1];
        // console.log("読み込まれたページを取得する", pages);
        console.log("現在のページのオブジェクト", view);
        this.share.path = `/${view.route}`;
        // 転送パラメータは this.share を返します。
    }
}
wxShare.js

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • uni-appを使用してWeChatアプレットの落とし穴レコードを生成する
  • uni-app WeChatアプレット認証ログイン実装手順
  • uni-app WeChatアプレットのログイン認証の実装
  • WeChat アプレットをユニアプリ プロジェクトに変換する方法の例
  • uni-app、WeChatアプレットの位置決め機能を開発

<<:  DIV、テーブル、XHTML のウェブサイト構築の違いの分析と説明

>>:  VMware を使用して PXE バッチ インストール サーバーをテストする詳細なプロセス

推薦する

インデックスとテーブルリターンをカバーするMySQLの使い方

インデックスの2つの主要なカテゴリ使用されるストレージエンジン: MySQL 5.7 InnoDBク...

要素のel-tree複数選択ツリー(チェックボックス)親子ノードの関連付けが関連付けられていません

属性チェック-厳密公式ドキュメントでは、チェックボックスが表示されるときに親項目と子項目を互いに関連...

実用的な MySQL + PostgreSQL バッチ挿入更新 insertOrUpdate

目次1. 百度百科事典1. MySQL 2. PostgreSQL 3. MySQL に対する Po...

JavaScript フロー制御 (分岐)

目次1. プロセス制御2. シーケンシャルプロセス制御3. 分岐フロー制御if文1. 支店構造2. ...

TypeScriptジェネリックの使用

目次1. 使いやすい2. 関数内でジェネリックを使用する3. クラス内でジェネリックを使用する4. ...

フォーム送信ページの更新がジャンプしない

1. ソースコードの設計コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

MySQL可視化ツールNavicatへの接続方法

Navicatをインストールした後次のエラーが発生する場合があります: Client does no...

MySQLの文字セットと検証ルールの詳細な説明

1いくつかの一般的な文字セットMySQL で最も一般的な文字セットには、ASCII 文字セット、ラテ...

MySQL 8.0 に移行する際の注意点 (要約)

パスワードモードPDO::__construct(): サーバーがクライアントに不明な認証方法を要求...

モバイル ブラウザのビューポート パラメータ (Web フロントエンド デザイン)

モバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置します。このウィン...

Ubuntu の空き容量を増やす 5 つの簡単な方法

序文ほとんどの人は、システム ディスク ストレージが少ないときにこの操作を実行するか、Linux シ...

シェルを使用して複数のサーバーでバッチ操作を実行する方法

目次SSHプロトコルパスワード接続プロセスsshツールssh公開鍵ログインバッチ操作複数サーバーファ...

MySQLはカスタム関数を使用して親IDまたは子IDを再帰的に照会します

背景: MySQL では、レベルに制限がある場合、たとえば、ツリーの最大深度を事前に決定できる場合、...

MySQLのさまざまなオブジェクトのサイズと長さの制限について話しましょう

目次識別子の長さ制限権限テーブルの範囲フィールドの長さ制限データベースとテーブルの数の制限テーブルサ...