Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

Salesforce for Android/iOS アプリケーションで PDF を開くためのコードの開発

公開日: Apr 30, 2025
説明

Salesforce for Android/iOS では PDF ビューを開くことができます。PDF はサムネイルビューとして表示され、ダウンロードリンクをクリックすると別のブラウザウィンドウでフルビューにアクセスできます。この場合に従うべきベストプラクティスと、認識しておく既知の制限事項について説明します。

ベストプラクティス

モバイルアプリケーション環境では、sforce.one.navigateToSObject() イベントコールを使用して PDF を開きます。このメソッドコールは、Salesforce for Android/iOS アプリケーション環境でのみ使用するものです。Salesforce for Android/iOS アプリケーションで URL 値をハードコードして PDF を開くことはお勧めしません。Salesforce for Android/iOS アプリケーションから PDF ビューを表示する場合の推奨方法は、navigateToSObject() イベントコールです。

注意: モバイルデバイスでは、navigateToSObject() イベントをコールすると、新しいブラウザウィンドウに PDF が開きます。モバイルアプリケーションのコンテキスト内に PDF ビューを表示することはできないため、これが設計に基づく動作です。モバイルブラウザの設定でポップアップを許可し、PDF がシームレスに表示されるようにします。

解決策

以前にアップロードした PDF を開く

PDF を Salesforce フルサイト組織の [ファイル] タブにアップロードした場合は、ファイルのレコード ID を navigateToSObject() メソッドコールのパラメータに使用して、PDF ビューページに移動できます。PDF をアップロード済みの場合に、PDF のファイルのレコード ID を確認するには、Salesforce デスクトップで [ファイル] タブを開き、PDF の URL からレコード ID をコピーして貼り付けます。「069」プレフィックスで始まる番号がファイルのレコード ID です。

注意: 標準オブジェクトのレコード ID とそのプレフィックスのリストについては、ヘルプ記事を参照してください。Salesforce for Android/iOS アプリケーション環境で PDF を開く場合、navigateToSObject コールに Attachment オブジェクトのレコード ID を使用しても PDF は開かないため、この ID を使用しないでください。

Visualforce ページで sforce.one.navigateToSObject() を使用する場合の例

<apex:page standardController="Campaign">
  <script>
    sforce.one.navigateToSObject('06946000000WeeL');
  </script>
</apex:page>


Lightning コンポーネントで lightning:navigation を使用する場合の例

注意: lightning:navigation では navigate() に pageReference を設定します。 

({
    handleClick: function(cmp, event, helper) {
        var navService = cmp.find("navService");
        var pageReference = {
            type: 'standard__recordPage',
            attributes: {
                recordId: '069e0000000azKYAAY',
                objectApiName: 'ContentDocument',
                actionName: 'view'
            }
        }
        event.preventDefault();
        navService.navigate(pageReference);
    }
})

動的に生成された PDF を開く

PDF ファイルを動的に生成して表示する場合は、コントローラを使ってこのファイルを生成して保存してから、新しい ID に移動します。PDF をサーバ側で生成して保存すれば、各種のプラットフォームで WebView がコンテンツタイプを正しく処理しない場合や、表示に関する他の問題が発生した場合にみられる競合を排除できます。このアプローチでファイルに直接移動すれば、サポートされているモバイル環境のユーザエクスペリエンスが一貫したものになります。

注意: Salesforce サポートが PDF を動的に生成する機能の構築について相談に応じることはできませんが、動的に生成された PDF を表示したときに特定のエラーが生じた場合はサポートします。

ナレッジ記事番号

000384273

 
読み込み中
Salesforce Help | Article