باز کردن صفحه با متغیر
این عملکرد صفحه مقصد را بر اساس مقدار فعلی یک متغیر باز میکند. برخلاف عملکرد باز کردن صفحه که صفحه مقصد در زمان طراحی مشخص میشود، در اینجا شناسه صفحه هنگام اجرای اپ از متغیر خوانده میشود.
کاربردها
- باز کردن صفحهای متفاوت بر اساس انتخاب یا وضعیت کاربر.
- ساخت منو یا مسیر ناوبری پویا بدون تعریف یک عملکرد جداگانه برای هر صفحه.
- باز کردن صفحه مقصدی که شناسه آن از سرور یا داده یک لیست پویا دریافت شده است.
- ذخیره شناسه صفحه در یک متغیر و استفاده از آن در چند ویجت یا رویداد مختلف.
تنظیمات
- متغیر شناسه صفحه: متغیری که مقدار آن شناسه صفحه مقصد است. انتخاب این فیلد الزامی است.
- انیمیشن صفحه: انیمیشنی که هنگام باز شدن صفحه اجرا میشود. میتوانید حالتهایی مانند Material، Cupertino، محوشونده، مقیاس یا حرکت از بالا و پایین را انتخاب کنید.
اگر «انیمیشن صفحه» را خالی بگذارید، انیمیشن پیشفرض انتخابشده در تنظیمات اپ اعمال میشود. انتخاب «بدون انیمیشن» با خالی گذاشتن این فیلد متفاوت است؛ در حالت اول صفحه عمداً بدون انیمیشن باز میشود.
مقدار معتبر متغیر
مقدار متغیر باید شناسه عددی یکی از صفحههای اپ باشد. مقدار میتواند عدد یا متن عددی باشد:
62856
مقادیر خالی، متنهای غیرعددی یا شناسهای که به صفحه قابل نمایش اشاره نمیکند، مقصد معتبری برای این عملکرد نیستند. اگر مقدار قابل تبدیل به شناسه عددی نباشد، صفحه باز نمیشود و اپ پیغام خطا نمایش میدهد.
شناسه صفحه را از مشخصات همان صفحه در پنل اپادیتور بردارید. نام یا عنوان صفحه را بهجای شناسه آن در متغیر قرار ندهید.
آموزش گامبهگام
فرض کنید متغیری با نام targetPageId دارید و میخواهید با کلیک یک دکمه، صفحهای که شناسهاش در این متغیر قرار دارد باز شود:
- متغیر
targetPageIdرا ایجاد کنید. - با عملکرد مقداردهی متغیر، شناسه صفحه موردنظر را در آن قرار دهید.
- دکمه یا ویجت دلخواه را انتخاب کنید و رویداد «کلیک» آن را باز کنید.
- عملکرد «باز کردن صفحه با متغیر» را اضافه کنید.
- در فیلد «متغیر شناسه صفحه»، متغیر
targetPageIdرا انتخاب کنید. - در صورت نیاز، انیمیشن باز شدن صفحه را انتخاب کنید.
- تغییرات را ذخیره کنید و عملکرد را با چند مقدار معتبر و نامعتبر آزمایش کنید.
نمونه با لیست پویا
اگر هر ردیف داده دارای فیلدی مانند targetPageId باشد، میتوانید در الگوی آیتم لیست پویا یک دکمه قرار دهید و متغیر زیر را برای شناسه صفحه انتخاب کنید:
sys.inPage.data.targetPageId
در این حالت هر ردیف میتواند صفحه متفاوتی را باز کند. مقدار targetPageId در داده هر ردیف باید شناسه عددی یک صفحه موجود در همان اپ باشد.
نمونه داده:
{
"title": "مشاهده جزئیات",
"targetPageId": 62856
}
برای آشنایی بیشتر با داده صفحه، متغیرهای سیستمی صفحه را ببینید.
تفاوت با «باز کردن صفحه»
| عملکرد | روش تعیین مقصد | کاربرد مناسب |
|---|---|---|
| باز کردن صفحه | انتخاب مستقیم صفحه در پنل | زمانی که مقصد همیشه ثابت است |
| باز کردن صفحه با متغیر | خواندن شناسه صفحه از متغیر هنگام اجرا | زمانی که مقصد با توجه به داده یا وضعیت اپ تغییر میکند |
اگر مقصد همیشه مشخص است، عملکرد معمولی «باز کردن صفحه» سادهتر و مطمئنتر است. از متغیر زمانی استفاده کنید که مقصد واقعاً باید پویا باشد.
نکات تکمیلی
- قبل از اجرای عملکرد مطمئن شوید متغیر مقداردهی شده است.
- اگر مقدار از سرور دریافت میشود، وجود صفحه متناظر با آن شناسه را در نسخه منتشرشده اپ بررسی کنید.
- هنگام استفاده در لیست پویا، حالت نبودن فیلد
targetPageIdدر بعضی ردیفها را نیز آزمایش کنید. - میتوانید برای جلوگیری از اجرای عملکرد در وضعیت نامعتبر، روی آن شرط تعریف کنید.
- انیمیشن انتخابی فقط مربوط به همین اجرای عملکرد است و تنظیمات پیشفرض سایر صفحهها را تغییر نمیدهد.
خطاهای رایج
- قرار دادن نام صفحه بهجای شناسه عددی آن در متغیر.
- انتخاب متغیری که هنوز ساخته یا مقداردهی نشده است.
- حذف صفحه مقصد پس از ذخیره شناسه آن در داده یا متغیر.
- خالی گذاشتن انیمیشن با تصور اینکه صفحه بدون انیمیشن باز میشود؛ حالت خالی از تنظیم پیشفرض اپ استفاده میکند.
- استفاده از یک شناسه ثابت در متغیر، درحالیکه عملکرد معمولی «باز کردن صفحه» برای آن سناریو سادهتر است.