React-Native スクリーンショットコンポーネント react-native-view-shot の紹介と使い方のまとめ

React-Native スクリーンショットコンポーネント react-native-view-shot の紹介と使い方のまとめ

1. 現象

1. 要件: 特定の表示ページをキャプチャしてアルバムに保存し、ポスターの形式で共有します。

2. iOSとAndroidをサポート

2. 解決策

1. インストール: npm i --save react-native-view-shot

2. リンク処理: react-native リンク react-native-view-shot

3. iOS で実行する場合は、次のコマンドも実行する必要があります (Android では必要ありません)。cd ios && pod install && cd ..

4. 使用方法:

(1)参考文献:

「react-native-view-shot」から{captureRef}をインポートします。

(2)テンプレート:

 <View ref="shareImageRef">表示されるコンテンツはここです</View>

(3)方法:

// 傍受した画像リンクを取得する doDownLoadImage = () => {
  キャプチャRef(this.refs.shareImageRef, {
    フォーマット: "jpg",
    品質: 0.8
  })。それから(
    ウリ => {

      console.error("リンクは:", uri)

    },
    エラー => {

      console.error("エラーメッセージ:", error)

    } 
  );
}

// 進化メソッド、インターセプトされた画像リンクを取得してアルバムに保存する doDownLoadImage = () => {
  キャプチャRef(this.refs.shareImageRef, {
    フォーマット: "jpg",
    品質: 0.8
  })。それから(
    ウリ => {

      console.error("リンクは:", uri) 

      promise = CameraRoll.saveToCameraRoll(uri); とします。
      約束
      .then((結果) => {
        alert('保存に成功しました!');
      })
      .catch((エラー) => {
        alert('保存に失敗しました!');
      });

    },
    エラー => {

      console.error("エラーメッセージ:", error)

    } 
  );
}

注: 参照を保存します (自己インストール): import CameraRoll from '@react-native-community/cameraroll';

// 生成されたリンクをbase64に変換し、共有可能なリンクに処理します。doShareImg = () => {
  キャプチャRef(this.refs.shareImageRef, {
    フォーマット: "jpg",
    品質: 0.8
  })。それから(
    ウリ => {

      console.error("リンクは:", uri) 

        RNFS.readFile(uri, 'base64')
      .then((コンテンツ) => {

        // 共有ポスター画像のアドレスは次のとおりです:

        const リンク = 'data:image/png;base64,' + コンテンツ

        console.log("共有ポスター画像のアドレスは" + リンクです)
      })
      .catch((エラー) => {
        console.log("読み取りエラー: " + err);
      });

    },
    エラー => {

      console.error("エラーメッセージ:", error)

    } 
  );
}

注: イメージは base64 に変換され、次のように参照されます: import RNFS from 'react-native-fs';

3. 要約:

必要に応じて、さらに使用方法とパラメータを取得できます: https://www.npmjs.com/package/react-native-view-shot

ヒント: 図に示すように、Android ではこのような問題が発生する可能性があります。

存在しないタグ2573のビューを解決しようとしています。

存在しないタグ 2105 のビューを解決しようとしています

私はこれら両方の現象に遭遇しました。解決策は、傍受する必要があるコンテンツに背景色を追加することです。

モジュールに追加する場合は:

<View ref="shareImageRef" style={{backgroundColor: 'white'}}>表示されるコンテンツはここです</View>

React Native スクリーンショットコンポーネント react-native-view-shot の紹介と使い方についてはこれで終わりです。React Native スクリーンショットコンポーネントに関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • React および Vue プロジェクトで SVG を使用する方法
  • ReactプロジェクトでのTypeScriptの実装
  • Reactは二次連結(左右連結)を実現する
  • React.js フレームワーク Redux 基本ケースの詳細な説明
  • vue で wangEditor を使用する方法と、データをエコーし​​てフォーカスを取得する方法
  • vue3とvue2の利点の比較
  • Vue は動的なプログレスバー効果を実現します
  • Vue は動的な円形のパーセンテージ進捗バーを実装します
  • Vueはパーセンテージバー効果を実現します
  • VueプロジェクトでReactを書く方法の詳細

<<:  Windows 10 に MySQL 8.0.19 を zip 形式でインストールする詳細なチュートリアル

>>:  VMware 15 仮想マシンに Ubuntu 18.04 をインストールするグラフィック チュートリアル

推薦する

Linux で SSH 経由でリモート ファイルシステムをマウントする方法の詳細な説明

SSHFS の機能: FUSE(Linux向けの最高のユーザー空間ファイルシステムフレームワーク)を...

MySQL アーキテクチャのナレッジポイントの概要

1. データベースとデータベースインスタンスMySQL の研究では、データベースとデータベース イン...

Bash スクリプトを使用して Linux のメモリ使用量を監視する方法

序文Linux システムのパフォーマンスを監視するために使用できるオープンソースの監視ツールが市場に...

Docker JVM メモリ使用量の表示

1. Docker コンテナのホスト マシンに入り、指定されたイメージを実行しているコンテナ ID ...

Nginx ポート競合を解決するトラブルシューティング方法の例

問題の説明データ転送に Nginx を使用し、フロントエンドとバックエンドが分離された Spring...

W3C組織はHTML4のスタイルに関する推奨事項を提供しています

これは、W3C 組織が HTML4 に対して提示したスタイル推奨事項です。残念ながら、ブラウザが独自...

MySQL 文字セットの概要

目次文字セット比較ルール4つのレベルの文字セットと比較規則3つのシステム変数このノートは主にMySQ...

JS+Canvas が抽選ホイールを引く

この記事では、宝くじターンテーブルを描画するJS + Canvasの具体的なコードを参考までに共有し...

CentOS 7 でソースコードから Openssh をインストールする方法

環境: CentOS 7.1.1503 最小インストール依存パッケージをダウンロードします: yum...

VUEプロジェクトでXSS攻撃に遭遇した実体験

目次序文原因を発見するカスタムフィルタリングルール要約する序文インターネットの急速な発展に伴い、情報...

MySQL Community Server 5.7.19 インストール ガイド (詳細)

MySQL公式サイトのzipファイルのダウンロードリンク https://dev.mysql.co...

MySQL ストアド関数の詳細な紹介

目次1. ストアド関数を作成する2. ストアド関数の呼び出し3. 保存された関数を削除する4. スト...

HTMLヘッダータグの使用に関する詳細な説明

HTMLはヘッドとボディの2つの部分で構成されています** ヘッド内のタグはヘッドタグです** タイ...

localStorageの有効期限を設定するいくつかの方法

目次問題の説明1. 基本的な解決策2. 中間的な解決策3. 高度なソリューション4. ハードコアソリ...

webpackの遅延読み込みとプリロードの詳細な説明

目次通常の読み込み遅延読み込みプリロードプリロードを使用しないプリロードの使用要約する通常の読み込み...