
"PublisherPro" プランを用いたアプリで下記手順を実現したいのですが、Confirmation Messageにリンクを貼れません。代案等ありませんでしょうか。
1. ユーザが特定の画面に遷移するためのボタンを押下
2. ボタン押下後、特定の画面に遷移する前にポップアップ等の画面が開く
- 画面にはURL等、別タブ、ブラウザが起動するリンクが貼られている
3. (ポップアップ)画面に設置された「OK」等のボタンを押下
4. 特定の画面に遷移
ユーザが特定の画面に遷移する前に、ポップアップ画面等で一枚画面を表示させ、ポップアップに設置された「OK」などのボタンを押下したのち、特定の画面に遷移できる仕様にしたいです。
現状、下記観点で実装が困難だと認識しています。
- ActionのNeeds Confirmation?を活用する場合、リンクを貼りつけることができない
- ポップアップ画面の代わりに「UX等で作成したページ」を設置した場合、ページに着地した地点でユーザが本来遷移したい先のURL情報を保持することができなくなる
SliceとDeeplink Expressionを利用します。
まず、対象のテーブルに規約確認を求める画面で表示させたいコンテンツをVirtual Columnで追加します。例えば、1)テキスト と2)URLをその画面で表示させたい場合、テキストタイプのVCを設置し、Appformulaに表示したいテキスト、例えば「編集に際し、URL先の規約をご確認、同意下さい。」などのテキストをExpressionとして挿入。もうひとつURLを設定して、そちらはURLタイプとし、Expressionには規約が記載されているURLをテキストとして入力。
推移元のDETAIL VIEWではこれらのVCを非表示とします。SliceでこれらのVCを選択せず、SLICEからVIEWを生成する、もしくはDETAIL VIEWの設定でカラムを選択する項目からVCを選択しない、いずれの手法でもOKです。
またこの時点では、Detail Viewの右下にDefaultで生成されるAction, Editが表示されていると思いますので、このACTIONはその設定から「Do not display」を選択し、アプリから隠します。
次にVCカラムだけを選択したSLICEを作成します。
そしてこのSLICEからDetail Viewを生成。Viewの名前をここでは「Confirmation」とします。
そして、推移元のテーブルにActionを設置。このアクションは、↑で作成したCONFIRMATION VIEWに飛ばすためのVIEWです。
ActionのタイプはGo to another view 。Expressionには
linktorow([ID], "Confirmation")
とすることで、同じ行、ここでは推移元テーブルのIDと同じ値を持つConfirmation Viewに飛ばせという指示になります。
このアクションを推移元のDETAIL VIEWで希望される場所で表示させます。
ここまでで、まず実現できることは、推移元のDETAIL ViEWに設置したアクションをクリックすることで同じ行のVCで生成されたSLICEのDETAILVIEWに飛ぶ、というところまで。
次にCONFIRMATIONVIEWには、推移元のDETAILVIEW・ROWの編集画面に飛ばすActionを設置します。
上で設定したアクションと同じくGo to another viewのアクションですが、そこで利用するDEEPLINK EXPRESSIONは
linktorow([ID],"●●_Form")
SLICEの設定に戻り、そのスライスではここで生成したActionが選択されていることを確認します。
CONFIRMATIONのVIEWにこのアクションが表示されます。
このアクションをクリックすることで、●●_Formに推移。
DEEPLINKはすべて同じ[ID]を持つROWのVIEWを行き来することとなりますので、VIEWは推移するものの、常に推移元のROWのデータを参照します。
複雑に聞こえますが、トリックが分かってしまえば簡単です。お試し下さい。
Appsheetの弊社カンパニープロファイルのページにあるこちらのサンプルも参照・参考にされてみてください。
https://www.appsheet.com/samples/Autocreated-from-Google-Sheets?appGuidString=f400bf06-ee79-4a79-957c-aa0adc9a9050
ご回答ありがとうございます。ご質問の回答は下記の通りです。
やりたいこととしては、とあるデータの編集を実施する際に、規約画面を表示させたいです。(Detail画面に設置された編集ボタン押下後、かならず規約画面(外部公開されているもので、Hyperlinkで遷移可能)を挟んでから編集画面に飛ばしたい)
質問への回答:
「ここでまず質問ですが、「リンク」とはいわゆるHYPERリンクのことで、クリックすることで指定のURLに飛ばすような機能を実装されたいということでしょうか?」
→ Yesです
「「本来推移したい先の特定の画面」とは、Appsheetの特定のVIEWでしょうか?」
→ Yesです
「その場合、推移先のVIEWと推移元のVIEWの間に関係を保持することが必要となるような要求でしょうか?」
→ Yesです。イメージは下記の通りです。
- 遷移元:あるスプレットシートの行の情報が記載されたページ(●●_Detail に相当)
- 遷移先:その行の情報を編集するためのページ(●●_Formに相当)
以上、よろしくお願いいたします。
Action のConfirmation Messageの設定では、ご覧の通り、Appsheetの関数・Expressionを使える場所であることを示すフラスコマークがありません。つまり、MESSAGEの設定では、動的に関数で文言を変更させたり、Hyperlinikを作成したりといったことが(現状は)できません。入力した文字は、常にTEXTとして取り扱われることとなります。
ここでまず質問ですが、「リンク」とはいわゆるHYPERリンクのことで、クリックすることで指定のURLに飛ばすような機能を実装されたいということでしょうか?
また、「本来推移したい先の特定の画面」とは、Appsheetの特定のVIEWでしょうか?また、その場合、推移先のVIEWと推移元のVIEWの間に関係を保持することが必要となるような要求でしょうか?