本文へスキップ
Unveilydocs

共有 & 保存

コンテンツをネイティブ共有シートに送るか、ギャラリー・ダウンロードフォルダに保存します。

概要

Web アプリで作成した画像・ファイル・テキスト・URL をネイティブ共有シートで他のアプリに送るか、ギャラリー(写真)・ダウンロードフォルダに保存します。openFileSelector がコンテンツを**取り込む(input)ブリッジであるのに対し、このブリッジはコンテンツを書き出す(output)**対になるものです。

メソッド対応タイプAndroidiOS
shareimage · file · text · url
saveToDeviceimage · file

対応プラン: Basic 以上

unveilyBridge は WebView に自動注入されます。初期化なしですぐに利用できます。

事前準備

Android

  • share: 追加の権限は不要です。
  • saveToDevice: Android 10(API 29)以上では権限は不要です。Android 9(API 28)以下でのみ WRITE_EXTERNAL_STORAGE が必要で、SDK が実行時に自動で権限を要求します。

iOS

  • share: 追加の権限は不要です。
  • saveToDevice(image): 写真アルバムに保存するため、Info.plist に次の説明を追加します。
<key>NSPhotoLibraryAddUsageDescription</key>
<string>作成したコンテンツを写真アルバムに保存します。</string>
  • saveToDevice(file): ファイルアプリ(Files)に保存し、追加の権限は不要です。

共有する — share

コンテンツをネイティブ共有シートに渡します。オプションはオブジェクトで渡します。

// テキスト / URL を共有
window.unveilyBridge.share({
  type: "url",
  data: "https://example.com/article/42",
  callback: "onShareResult"
});

// 画像を共有(base64 またはローカルパス/URI)
window.unveilyBridge.share({
  type: "image",
  data: base64OrPath,       // "data:image/png;base64,..." または "/path", "content://..."
  mimeType: "image/png",
  filename: "receipt.png",
  callback: "onShareResult"
});
オプション説明
typestring'image' · 'file' · 'text' · 'url'
datastringtext·url → 文字列。image·file → base64(原文または data URI)またはローカルパス/URI(/…file://…content://…
mimeTypestring(任意)例: image/pngapplication/pdf
filenamestring(任意)共有ファイル名
callbackstring結果を受け取るグローバル関数名。省略時は 'onShareResult'

サイズの大きい画像・ファイルは base64 ではなくローカルパス/URI で渡してください。base64 はサイズが約 33% 増加し、大きなメディアではメモリの問題が起きることがあります。


デバイスに保存 — saveToDevice

画像はギャラリー(写真)、ファイルはダウンロードフォルダUnveily サブフォルダに保存します。

// 画像をギャラリーに保存
window.unveilyBridge.saveToDevice({
  type: "image",
  data: base64OrPath,
  mimeType: "image/png",
  filename: "chart.png",
  callback: "onSaveResult"
});

// ファイルをダウンロードに保存
window.unveilyBridge.saveToDevice({
  type: "file",
  data: base64OrPath,
  mimeType: "application/pdf",
  filename: "invoice.pdf",
  callback: "onSaveResult"
});
オプション説明
typestring'image' · 'file'
datastringbase64(原文または data URI)またはローカルパス/URI
mimeTypestring(任意)既定値: 画像 image/png、ファイル application/octet-stream
filenamestring(任意)保存ファイル名
callbackstring結果を受け取るグローバル関数名。省略時は 'onSaveResult'

コールバック結果

callback で指定したグローバル関数が結果オブジェクトを引数に呼び出されます。

function onShareResult(result) {
  if (result.success) {
    // 完了
  } else if (result.canceled) {
    // ユーザーがキャンセル(iOS)
  } else {
    console.log("失敗:", result.error);
  }
}
結果意味
{ success: true }成功
{ success: false, canceled: true }ユーザーがキャンセルした
{ success: false, error: "<コード>" }失敗(例: invalid_dataunsupported_type

プラットフォーム差 — Android の共有シートは、ユーザーがどのアプリを選んだか・キャンセルしたかを確実に通知できないため、sharesuccess は「共有シートが開いた」ことを意味します。iOS は完了とキャンセルを区別し canceled を報告します。saveToDevice は両プラットフォームとも実際の保存の成否を正確に報告します。

On this page