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 をインストールするグラフィック チュートリアル

推薦する

HTM と HTML の違いは何ですか? HTM と HTML の違いは何ですか?

Web デザインを学習する過程で、html と htm の関係など、遭遇した多くの問題について深く...

MySQL でテーブルを削除する 3 つの方法 (要約)

ドロップテーブルドロップはテーブル情報を直接削除するため、最も高速ですが、データを取得することはでき...

docker ベースで Prometheus+Grafana を構築する手順の詳細説明

1. プロメテウスの紹介Prometheus は、もともと SoundCloud によって開発された...

mysql はフィールドコンテンツの一部を置き換え、mysql は関数 replace() を置き換えます。

[mysql] replace の使用方法 (フィールドの内容の一部を置き換える) [mysql]...

HTML タグでの this の使用法の紹介

例えば:コードをコピーコードは次のとおりです。 <html> <ヘッド> &...

js キャンバスで円形の水のアニメーションを実現

この記事の例では、円形の水のアニメーションを実現するためのキャンバスの具体的なコードを参考までに共有...

LinuxのバックグラウンドでPythonプログラムを実行するいくつかの方法

1. 最初の方法は、unhup コマンドを直接使用してプログラムをバックグラウンドで実行することです...

React tsx はランダムな検証コードを生成します

React tsxは参照用にランダムな検証コードを生成します。具体的な内容は次のとおりです。最近、t...

MySQL における楽観的ロックと悲観的ロックの例

データベース管理システムにおける同時実行制御のタスクは、データベース内の同じデータに同時にアクセスす...

Vue は Ctrip のカルーセル効果を模倣します (スライディング カルーセル、以下は高度に適応)

まずケースを見てみましょう。vue+swiper を使用して実装します。スライドの高さが異なる場合、...

Vue+Router+Element でシンプルなナビゲーションバーを実装する

このプロジェクトでは、Vue+Router+Element の具体的なコードを共有して、シンプルなナ...

Nexus を使用して Docker リポジトリを作成する方法

公式の Docker レジストリを使用して作成されたウェアハウスでは、イメージを削除してもデフォルト...

iframeをカプセル化するvueコンポーネントを開発する

目次1. コンポーネントの紹介2. コンポーネントの内部構造とロジック1. コード組織構造2. マッ...

ウェブサイトはグレー表示されています。画像を含む互換コードはすべてのブラウザをサポートしています

通常、国喪の日、大地震の日、清明節には、ウェブサイト全体を灰色にして、故人への哀悼の意を表します。そ...

インターフェースなしで Centos7 に JDK と Tomcat をデプロイするチュートリアル

1. xshell6をインストールする2. サーバー接続を作成し、ユーザー名とパスワードを入力します...