زبان Route

توضیحات توسعه Route Script

سیستم Route Script رفتار و منطق اپلیکیشن شما را با استفاده از ساختار دستوری مبتنی بر JSON تعریف می‌کند. این سیستم به شما اجازه می‌دهد بدون نوشتن کد سنتی، هدایت بین صفحات، عملکردهای کاربر، مدیریت داده‌ها و منطق شرطی را کنترل کنید. هر دستور در اسکریپت یک عمل، شرط یا توالی را نشان می‌دهد که رفتار داینامیک اپلیکیشن را ممکن می‌سازد.


ویژگی‌های کلیدی

  • Variables: ذخیره و مدیریت داده‌ها با استفاده از var
  • منطق شرطی: کنترل جریان با if, elif, else, و ساختار when-case
  • هدایت (Navigation): جابه‌جایی بین صفحات با page, page-finish, timeout, timeout-finish
  • عملیات کاربری: انجام کارهایی مثل buy, use, login, chat, orders, tickets, online-support
  • ارتباطات: ارسال email, sms یا برقراری call
  • نمایش محتوا: نمایش مدیا با photo, video, pdf, web, download
  • ابزارها: عملیات کاربردی مثل copy, share, toast, eval, set, delay, wallet, reset و غیره
  • مدیریت حساب کاربری: عملیات‌ مانند logout, change-pass, change-name, delete-account, charge, update

جدول دستورات

نام فرمان آرگومان ها حاوی فرامین درونی توضیحات
var name, value ندارد تعریف یک متغیر با نام و مقدار
if exp دارد اجرای شرط در صورتی که عبارت درست باشد
elif exp دارد اجرای شرط در صورت false بودن شرط‌های قبلی
else - دارد اجرای دستورات در صورت برقرار نبودن شرایط قبلی
when - دارد شروع یک بلوک when-case
case value دارد یک case درون بلوک when
else (when) - دارد حالت پیش‌فرض در بلوک when
yeno title, text دارد نمایش دیالوگ بله/خیر با عنوان و متن
buy product, price دارد خرید محصول با قیمت مشخص
buy-use product, price دارد خرید محصول و استفاده فوری آن
use product دارد استفاده از محصول
login - ندارد ورود کاربر
page pageName ندارد رفتن به صفحه مشخص
page-finish pageName ندارد خروج یا پایان صفحه
timeout pageName, timeout ندارد تعیین timeout برای صفحه
timeout-finish pageName, timeout ندارد پایان timeout صفحه
finish - ندارد خروج از صفحه جاری
day-night - ندارد تغییر حالت روز/شب
reset - ندارد ریست وضعیت‌ها یا متغیرها
open url ندارد باز کردن URL
call phone ندارد تماس تلفنی
email email, subject, text ندارد ارسال ایمیل
sms phone, text ندارد ارسال پیامک
copy text ندارد کپی کردن متن
share text ندارد اشتراک‌گذاری متن
toast text ندارد نمایش پیام toast
chat email ندارد باز کردن چت با ایمیل مشخص
orders - ندارد نمایش سفارش‌ها
tickets - ندارد نمایش تیکت‌ها
online-support - ندارد پشتیبانی آنلاین
clean key ندارد حذف یک متغیر
clean-starts keys ندارد حذف متغیرهایی که با رشته خاصی شروع می‌شوند
clean-likes keys ندارد حذف متغیرهایی که شامل رشته مشخصی هستند
clean-ends keys ندارد حذف متغیرهایی که با رشته مشخصی پایان می‌یابند
photo url ندارد نمایش عکس
video url ندارد نمایش ویدیو
pdf url ندارد نمایش PDF
web url ندارد باز کردن صفحه وب
download url ندارد دانلود فایل
download-open url ندارد دانلود فایل و باز کردن آن
eval name, exp ندارد ارزیابی عبارت و ذخیره نتیجه
send listingType ندارد ارسال نوع لیست
wallet - ندارد باز کردن کیف پول
dialog pageName ندارد باز کردن دیالوگ
menu pageName ندارد باز کردن منو
logout - ندارد خروج کاربر
change-pass - ندارد تغییر رمز عبور
change-name - ندارد تغییر نام کاربری
delete-account - ندارد حذف حساب کاربری
charge product, price ندارد شارژ محصول یا سرویس
about - ندارد اطلاعات برنامه
update - ندارد بررسی آپدیت
app appID ندارد باز کردن اپ دیگر با ID
send-ticket - ندارد ارسال تیکت پشتیبانی
send-chat - ندارد ارسال پیام چت
locale locale ندارد تنظیم زبان اپلیکیشن
set name, field, value ندارد تنظیم مقدار یک فیلد در متغیر مشخص
delay timeout ندارد تأخیر در اجرای دستور

var (name, value)

کاربرد: تعریف یک متغیر با یک نام و مقدار

آرگومان ها نوع مقدار پیشفرض توضیحات
Name String {name} نام متغیر
Value String {value} مقدار ذخیره‌شده در متغیر

نمونه کدنویسی:

{
  "name": "var",
  "args": ["{name}","{value}"]
}

if (exp)

کاربرد: اجرای شرطی در صورتی که عبارت درست باشد

آرگومان ها نوع مقدار پیشفرض توضیحات
Expression String {exp} عبارت شرطی و شرایط لازم

نمونه کدنویسی:

{
  "name": "if",
  "args": ["{exp}"],
  "cmds": []
}

elif (exp)

کاربرد: اجرای شرطی در صورتی که if یا elif قبلی برقرار نبوده باشد

آرگومان ها نوع مقدار پیشفرض توضیحات
Expression String {exp} عبارت شرطی و شرایط لازم

نمونه کدنویسی:

{
  "name": "elif",
  "args": ["{exp}"],
  "cmds": []
}

else

کاربرد: اجرای دستورات در صورتی که تمام شرایط قبلی برقرار نبوده باشد

نمونه کدنویسی:

{
  "name": "else",
  "cmds": []
}

when

کاربرد: شروع یک بلوک when-case

نمونه کدنویسی:

{
  "name": "when",
  "cmds": []
}

when-case

کاربرد: یک case داخل بلوک when

آرگومان ها نوع مقدار پیشفرض توضیحات
Value String {value} مقدار مربوط به case

نمونه کدنویسی:

{
  "name": "case",
  "args": ["{value}"],
  "cmds": []
}

when-else

کاربرد: حالت پیش‌فرض داخل بلوک when

نمونه کدنویسی:

{
  "name": "else",
  "cmds": []
}

yeno (title, text)

کاربرد: نمایش یک پیام Yes/No با عنوان و متن

آرگومان ها نوع مقدار پیشفرض توضیحات
Title String {title} عنوان پیام Yes/No
Text String {text} متن پیام Yes/No

نمونه کدنویسی:

{
  "name": "yeno",
  "args": ["{title}","{text}"],
  "cmds": []
}

buy (product, price)

کاربرد: خرید یک محصول با قیمت مشخص

آرگومان ها نوع مقدار پیشفرض توضیحات
Product String {product} نام محصول
Price Number {price} قیمت محصول

نمونه کدنویسی:

{
  "name": "buy",
  "args": ["{product}","{price}"],
  "cmds": []
}

buy-use (product, price)

کاربرد: خرید محصول و استفاده فوری از آن

آرگومان ها نوع مقدار پیشفرض توضیحات
Product String {product} نام محصول
Price Number {price} قیمت محصول

نمونه کدنویسی:

{
  "name": "buy-use",
  "args": ["{product}","{price}"],
  "cmds": []
}

use (product)

کاربرد: استفاده از یک محصول

آرگومان ها نوع مقدار پیشفرض توضیحات
Product String {product} نام محصول

نمونه کدنویسی:

{
  "name": "use",
  "args": ["{product}"]
}

login ()

کاربرد: ورود کاربر به حساب کاربری

نمونه کدنویسی:

{
  "name": "login"
}

page (pageName)

کاربرد: رفتن به یک صفحه مشخص

آرگومان ها نوع مقدار پیشفرض توضیحات
PageName PageName {pageName} نام صفحه برای باز کردن

نمونه کدنویسی:

{
  "name": "page",
  "args": ["{pageName}"]
}

page-finish (pageName)

کاربرد: بستن یا پایان دادن یک صفحه

آرگومان ها نوع مقدار پیشفرض توضیحات
PageName PageName {pageName} نام صفحه برای بستن

نمونه کدنویسی:

{
  "name": "page-finish",
  "args": ["{pageName}"]
}

timeout (pageName, timeout)

کاربرد: تنظیم زمان‌سنج برای یک صفحه

آرگومان ها نوع مقدار پیشفرض توضیحات
PageName PageName {pageName} نام صفحه
Timeout Number {timeout} مدت‌زمان فعال بودن صفحه

نمونه کدنویسی:

{
  "name": "timeout",
  "args": ["{pageName}","{timeout}"]
}

timeout-finish (pageName, timeout)

کاربرد: پایان دادن به تایم‌اوت یک صفحه

آرگومان ها نوع مقدار پیشفرض توضیحات
PageName PageName {pageName} نام صفحه
Timeout Number {timeout} مدت‌زمان تایم‌اوت

نمونه کدنویسی:

{
  "name": "timeout-finish",
  "args": ["{pageName}","{timeout}"]
}

finish ()

کاربرد: پایان دادن به صفحه فعلی

نمونه کدنویسی:

{
  "name": "finish"
}

day-night ()

کاربرد: تغییر حالت بین روز و شب (Light/Dark Mode)

نمونه کدنویسی:

{
  "name": "day-night"
}

reset ()

کاربرد: بازنشانی وضعیت‌ها یا متغیرها

نمونه کدنویسی:

{
  "name": "reset"
}

open (url)

کاربرد: باز کردن یک لینک در مرورگر

آرگومان ها نوع مقدار پیشفرض توضیحات
URL URL {url} آدرس اینترنتی برای باز شدن

نمونه کدنویسی:

{
  "name": "open",
  "args": ["{url}"]
}

call (phone)

کاربرد: برقراری تماس تلفنی

آرگومان ها نوع مقدار پیشفرض توضیحات
Phone Phone {phone} شماره تلفن برای برقراری تماس

نمونه کدنویسی:

{
  "name": "call",
  "args": ["{phone}"]
}

email (email, subject, text)

کاربرد: ارسال ایمیل

آرگومان ها نوع مقدار پیشفرض توضیحات
Email Email {email} آدرس ایمیل برای ارسال
Subject String {subject} موضوع ایمیل
Text String {text} متن داخل ایمیل

نمونه کدنویسی:

{
  "name": "email",
  "args": ["{email}","{subject}","{text}"]
}

sms (phone, text)

کاربرد: ارسال پیامک

آرگومان ها نوع مقدار پیشفرض توضیحات
Phone Phone {phone} شماره برای پیامک
Text String {text} متن پیام

نمونه کدنویسی:

{
  "name": "sms",
  "args": ["{phone}","{text}"]
}

copy (text)

کاربرد: کپی متن در کلیپ‌بورد

آرگومان ها نوع مقدار پیشفرض توضیحات
Text String {text} متن برای کپی

نمونه کدنویسی:

{
  "name": "copy",
  "args": ["{text}"]
}

share (text)

کاربرد: اشتراک‌گذاری متن با سیستم

آرگومان ها نوع مقدار پیشفرض توضیحات
Text String {text} متن برای اشتراک

نمونه کدنویسی:

{
  "name": "share",
  "args": ["{text}"]
}

toast (text)

کاربرد: نمایش پیام Toast موقتی

آرگومان ها نوع مقدار پیشفرض توضیحات
Text String {text} متن پیام Toast

نمونه کدنویسی:

{
  "name": "toast",
  "args": ["{text}"]
}

chat (email)

کاربرد: باز کردن چت با ایمیل مشخص

آرگومان ها نوع مقدار پیشفرض توضیحات
Email Email {email} ایمیل چت

نمونه کدنویسی:

{
  "name": "chat",
  "args": ["{email}"]
}

orders ()

کاربرد: نمایش سفارش‌های کاربر

نمونه کدنویسی:

{
  "name": "orders"
}

tickets ()

کاربرد: نمایش تیکت‌ها

نمونه کدنویسی:

{
  "name": "tickets"
}

online-support ()

کاربرد: دسترسی به پشتیبانی آنلاین

نمونه کدنویسی:

{
  "name": "online-support"
}

clean (key)

کاربرد: حذف یک متغیر

آرگومان ها نوع مقدار پیشفرض توضیحات
Key String {key} نام کلید برای حذف

نمونه کدنویسی:

{
  "name": "clean",
  "args": ["{key}"]
}

clean-starts (keys)

کاربرد: حذف متغیرهایی که با مقدار مشخص شروع می‌شوند

آرگومان ها نوع مقدار پیشفرض توضیحات
Keys String {keys} کلیدها برای پاک‌سازی شروع

نمونه کدنویسی:

{
  "name": "clean-starts",
  "args": ["{keys}"]
}

clean-likes (keys)

کاربرد: حذف متغیرهایی که شامل مقدار مشخص هستند

آرگومان ها نوع مقدار پیشفرض توضیحات
Keys String {keys} کلیدها برای پاک‌سازی مشابه

نمونه کدنویسی:

{
  "name": "clean-likes",
  "args": ["{keys}"]
}

clean-ends (keys)

کاربرد: حذف متغیرهایی که با مقدار مشخص پایان می‌یابند

آرگومان ها نوع مقدار پیشفرض توضیحات
Keys String {keys} کلیدها برای پاک‌سازی پایان

نمونه کدنویسی:

{
  "name": "clean-ends",
  "args": ["{keys}"]
}

photo (url)

کاربرد: نمایش عکس از آدرس URL

آرگومان ها نوع مقدار پیشفرض توضیحات
URL URL {url} آدرس عکس

نمونه کدنویسی:

{
  "name": "photo",
  "args": ["{url}"]
}

video (url)

کاربرد: نمایش ویدیو از آدرس URL

آرگومان ها نوع مقدار پیشفرض توضیحات
URL URL {url} آدرس ویدیو

نمونه کدنویسی:

{
  "name": "video",
  "args": ["{url}"]
}

pdf (url)

کاربرد: نمایش PDF از آدرس URL

آرگومان ها نوع مقدار پیشفرض توضیحات
URL URL {url} آدرس PDF

نمونه کدنویسی:

{
  "name": "pdf",
  "args": ["{url}"]
}

web (url)

کاربرد: باز کردن صفحه وب

آرگومان ها نوع مقدار پیشفرض توضیحات
URL URL {url} آدرس وب‌سایت

نمونه کدنویسی:

{
  "name": "web",
  "args": ["{url}"]
}

download (url)

کاربرد: دانلود فایل

آرگومان ها نوع مقدار پیشفرض توضیحات
URL URL {url} آدرس فایل

نمونه کدنویسی:

{
  "name": "download",
  "args": ["{url}"]
}

download-open (url)

کاربرد: دانلود فایل و باز کردن آن

آرگومان ها نوع مقدار پیشفرض توضیحات
URL URL {url} آدرس فایل

نمونه کدنویسی:

{
  "name": "download-open",
  "args": ["{url}"]
}

eval (name, exp)

کاربرد: اجرای یک expression و ذخیره نتیجه در یک متغیر

آرگومان ها نوع مقدار پیشفرض توضیحات
Name String {name} نام متغیر
Expression String {exp} عبارت برای ذخیره در متغیر

نمونه کدنویسی:

{
  "name": "eval",
  "args": ["{name}","{exp}"]
}

send (listingType)

کاربرد: ارسال یک listing type

آرگومان ها نوع مقدار پیشفرض توضیحات
ListingType ListingType {listingType} لیست تایپ برای ارسال داده

نمونه کدنویسی:

{
  "name": "send",
  "args": ["{listingType}"]
}

wallet ()

کاربرد: باز کردن کیف پول

نمونه کدنویسی:

{
  "name": "wallet"
}

dialog (pageName)

کاربرد: باز کردن یک صفحهٔ دیالوگ

آرگومان ها نوع مقدار پیشفرض توضیحات
PageName PageName {pageName} نام صفحهٔ دیالوگ موردنظر

نمونه کدنویسی:

{
  "name": "dialog",
  "args": ["{pageName}"]
}

menu (pageName)

کاربرد: باز کردن یک صفحهٔ منو

آرگومان ها نوع مقدار پیشفرض توضیحات
PageName PageName {pageName} نام صفحهٔ منوی موردنظر

نمونه کدنویسی:

{
  "name": "menu",
  "args": ["{pageName}"]
}

logout ()

کاربرد: خروج کاربر از حساب

نمونه کدنویسی:

{
  "name": "logout"
}

change-pass ()

کاربرد: تغییر رمز عبور کاربر

نمونه کدنویسی:

{
  "name": "change-pass"
}

change-name ()

کاربرد: تغییر نام نمایشی کاربر

نمونه کدنویسی:

{
  "name": "change-name"
}

delete-account ()

کاربرد: حذف حساب کاربر

نمونه کدنویسی:

{
  "name": "delete-account"
}

charge (product, price)

کاربرد: شارژ حساب برای یک محصول یا سرویس

آرگومان ها نوع مقدار پیشفرض توضیحات
Product String {product} نام محصول برای شارژ کیف پول
Price String {price} قیمت محصول

نمونه کدنویسی:

{
  "name": "charge",
  "args": ["{product}","{price}"]
}

about ()

کاربرد: نمایش اطلاعات برنامه

نمونه کدنویسی:

{
  "name": "about"
}

update ()

کاربرد: بررسی بروزرسانی اپلیکیشن

نمونه کدنویسی:

{
  "name": "update"
}

app (appID)

کاربرد: باز کردن یک اپلیکیشن دیگر با AppID

آرگومان ها نوع مقدار پیشفرض توضیحات
AppID AID {appID} شناسهٔ برنامه برای اجرای اپلین داخل این برنامه

نمونه کدنویسی:

{
  "name": "app",
  "args": ["{appID}"]
}

send-ticket ()

کاربرد: ارسال تیکت پشتیبانی

نمونه کدنویسی:

{
  "name": "send-ticket"
}

send-chat ()

کاربرد: ارسال پیام چت

نمونه کدنویسی:

{
  "name": "send-chat"
}

locale (locale)

کاربرد: تنظیم زبان اپلیکیشن

آرگومان ها نوع مقدار پیشفرض توضیحات
Locale Locale {locale} زبان موردنظر مانند "en", "fa"

نمونه کدنویسی:

{
  "name": "locale",
  "args": ["{locale}"]
}

set (name, field, value)

کاربرد: تنظیم مقدار یک فیلد از یک متغیر

آرگومان ها نوع مقدار پیشفرض توضیحات
Name String {name} نام المان
Field String {field} نام فیلد المان
Value String {value} مقدار جدید برای فیلد مشخص‌شده

نمونه کدنویسی:

{
  "name": "set",
  "args": ["{name}","{field}","{value}"]
}

delay (timeout)

کاربرد: ایجاد تأخیر در اجرای دستورات

آرگومان ها نوع مقدار پیشفرض توضیحات
Timeout Number {timeout} مدت زمان تأخیر برای اجرا

نمونه کدنویسی:

{
  "name": "delay",
  "args": ["{timeout}"]
}

مثال‌هایی از اسکریپت‌های مسیر (Route Scripts)

1. جابه‌جایی ساده بین صفحات

این اسکریپت یک صفحه دیگر را باز می‌کند.

{
  "name": "page",
  "args": ["HomePage"]
}

2. منطق شرطی (Conditional Logic)

اگر مقدار متغیر $logged برابر 1 باشد، کاربر به داشبورد هدایت می‌شود.

{
  "name": "if",
  "args": ["$logged==1"],
  "cmds": [
    {
      "name": "page",
      "args": ["dashboard"]
    }
  ]
}

3. نمایش پیام Toast

یک پیام موقت روی صفحه نشان می‌دهد.

{
  "name": "toast",
  "args": ["Welcome to the app!"]
}

4. خرید و استفاده از یک محصول

برای مثال خرید اشتراک Premium به مبلغ 9.99.

{
  "name": "buy-use",
  "args": ["PremiumSubscription","9.99"]
}

5. منطق چندمرحله‌ای when–case

اجرای مجموعه‌ای از فرمان‌ها بر اساس مقدار ورودی. مشابه switch-case.

{
  "name": "when",
  "cmds": [
    {
      "name": "case",
      "args": ["silver"],
      "cmds": [
        {"name": "toast", "args": ["Silver user access"]}
      ]
    },
    {
      "name": "case",
      "args": ["gold"],
      "cmds": [
        {"name": "toast", "args": ["Gold user access"]}
      ]
    },
    {
      "name": "else",
      "cmds": [
        {"name": "toast", "args": ["No access level"]}
      ]
    }
  ]
}