سادهترین راه برای افزودن پیوستهای Nearby Notifications از طریق داشبورد Google Beacon است. از طرف دیگر، میتوانید از Proximity Beacon API و قالب دادههای پیوست که در زیر توضیح داده شده است استفاده کنید.
پیوستهای ویژگی Nearby Notifications باید از فضای نام com.google.nearby
و نوعی متشکل از کد زبان دو حرفی و پسوند اختیاری -debug
استفاده کنند.
پیوست ها باید با استفاده از JSON قالب بندی شوند. به عنوان مثال:
{
"title": "Example",
"url": "https://www.example.com"
}
فرمت JSON به صورت اختیاری امکان هدف گذاری خاص تری را می دهد که در زیر نشان داده شده است:
{
"title": "Example",
"url": "https://www.example.com",
"targeting":[
{
"startDate": "2017-01-01",
"endDate": "2017-01-31",
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00",
"anyOfDaysOfWeek": [1, 2, 3, 4, 5, 6, 7],
"anyOfAppInstallStates": ["INSTALLED", "NOT_INSTALLED"]
}
]
}
کجا:
- عنوان - عنوان محتوا. طول
title
باید کمتر از 40 کاراکتر و کمتر از 50 کاراکتر باشد. این به طور ایده آل باید به کاربر یک فراخوان برای اقدام بدهد. برای مثال،Order with your phone, skip the line
،Set up your thermostat
، یاLearn more about sea otters
. - url - نشانی اینترنتی برنامه، وبسایت یا سرویس.
- هدف گذاری — قوانین اختیاری برای محدود کردن دید اعلان ها بر اساس زمینه دستگاه.
فرمت های URL
Nearby Notifications از سه قالب URL پشتیبانی می کند:
آدرس وب
URL وب دقیقاً همین است، فقط یک URL معمولی. هنگامی که یک URL وب دریافت می شود، از کاربر خواسته می شود تا URL را در مرورگر پیش فرض باز کند. هیچ پیکربندی برنامه خاصی مورد نیاز نیست. URL های وب باید از HTTPS استفاده کنند و به عنوان یک URL معمولی قالب بندی می شوند:
https://www.example.com
اگر URL وب شما اعلان را راه اندازی نمی کند، محتمل ترین دلایل عبارتند از:
- استفاده از HTTP به جای HTTPS
- پیوند دادن به فروشگاه برنامه مانند play.google.com ممنوع است. صفحه وب باید مستقل باشد و مستقیماً اطلاعات یا اقدامات مفیدی را در صفحه فرود ارائه دهد.
هدف برنامه
آدرسهای اینترنتی هدف برنامه برای راهاندازی یک Intent در یک برنامه استفاده میشود. وقتی یک URL هدف برنامه دریافت میشود، برنامه مرتبط به پارامترهای موجود در URL پاسخ میدهد، مشروط بر اینکه فیلتر هدف برنامه مربوطه وجود داشته باشد. اگر برنامه نصب نشده باشد، کاربر برای نصب برنامه به Play Store منتقل می شود. پس از نصب برنامه، آنها می توانند برنامه را راه اندازی کنند و به ویژگی مشخص شده توسط توسعه دهنده ادامه دهند. URL های هدف برنامه به صورت زیر قالب بندی می شوند:
intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui;end;
برای جزئیات بیشتر درباره قالببندی URLهای هدف، به Android Intent با Chrome مراجعه کنید. توجه داشته باشید که موارد اضافی قصد عبور داده نمی شود.
همچنین میتوانید با ایجاد یک intent، و سپس با استفاده از intent.toUri(Intent.URI_INTENT_SCHEME)
، URL را به درستی بسازید، همانطور که در اینجا نشان داده شده است:
Intent intent = new Intent()
.setData(new Uri.Builder()
.scheme("yourscheme")
.authority("host")
.appendPath("path")
.build())
.setPackage("com.yourapp.ui");
Log.i(TAG, "Use this intent url: " + intent.toUri(Intent.URI_INTENT_SCHEME));
قصد برنامه رایگان
این گزینه باید برای اهداف برنامه ای استفاده شود که با طرح، مسیر و قالب نام بسته مطابقت ندارند. فقط در صورتی از این گزینه استفاده کنید که مطمئن هستید URL قصد شما به درستی قالب بندی شده است.
در صورت نصب نشدن برنامه با افزودن پارامتر S.browser_fallback_url به intent، میتوانید به جای Play Store، کاربر را به یک URL مشخص ارسال کنید:
intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui; \
S.browser_fallback_url=http%3A%2F%2Fm.yoursite.com%2Fpath%2F%;end;
هدف گذاری زمینه
قوانین
Nearby Notifications از چهار قانون هدفیابی پشتیبانی میکند:
تاریخ
dateStart
و dateEnd
برای تعیین محدوده تاریخی که در آن پیوست قابل مشاهده است، در قالب ISO 8601 استفاده می شود. مثال زیر اعلان را در ژانویه 2017 نشان می دهد.
{
"title": "January 2017",
"url": "https://www.example.com",
"targeting":[
{
"startDate": "2017-01-01",
"endDate": "2017-01-31"
}
]
}
زمان روز
"timeOfDayStart" و "timeOfDayEnd" برای تعیین محدوده زمانی روزانه که در آن پیوست قابل مشاهده است، در قالب ISO 8601 استفاده می شود. مثال زیر اعلان را از ساعت 9 صبح تا 5 بعد از ظهر هر روز نشان می دهد:
{
"title": "Work time",
"url": "https://www.example.com",
"targeting":[
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
}
]
}
روز هفته
"anyOfDaysOfWeek" برای تعیین روزهای هفته که پیوست قابل مشاهده است استفاده می شود. فرمت ISO 8601، از 1 (دوشنبه) تا 7 (یکشنبه) است. مثال زیر اعلان روزهای شنبه و یکشنبه را نشان می دهد:
{
"title": "Weekends",
"url": "https://www.example.com",
"targeting":[
{
"anyOfDaysOfWeek": [6, 7]
}
]
}
وضعیت نصب برنامه
"anyOfAppInstallStates" برای تنظیم نمایان بودن پیوست بر اساس وضعیت های نصب برنامه است. این فقط برای URL هدف برنامه کار می کند. مثال زیر اعلان هنگام نصب نشدن برنامه را نشان می دهد.
{
"title": "App not installed",
"url": "intent://host/path#Intent;package=com.example",
"targeting":[
{
"anyOfAppInstallStates": ["NOT_INSTALLED"]
}
]
}
ترکیبی از قوانین
برای هر پیوست، قوانین هدف گیری متعددی می تواند وجود داشته باشد. قوانین مربوط به یک هدف هدف با هم AND می شوند. مثال زیر یک اعلان از ساعت 9 صبح تا 5 بعد از ظهر در روزهای شنبه و یکشنبه را نشان می دهد.
{
"title": "Weekend and work time",
"url": "https://www.example.com",
"targeting":[
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
"anyOfDaysOfWeek": [6, 7]
}
]
}
قوانین از اشیاء مختلف هدف با هم OR شده اند. مثال زیر یک اعلان از ساعت 9 صبح تا 5 بعد از ظهر روزانه از دوشنبه تا جمعه، به علاوه کل روز شنبه ها و یکشنبه ها را نشان می دهد.
{
"title": "Weekend or work time",
"url": "https://www.example.com",
"targeting":[
{
"anyOfDaysOfWeek": [6, 7]
},
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
}
]
}
یک فیلتر قصد به برنامه خود اضافه کنید
برنامه ها باید طوری پیکربندی شوند که طرح، میزبان و مسیر URL داده شده را مدیریت کنند. برای انجام این کار، باید عنصری را در AndroidManifest.xml خود اضافه کنید تا یک <intent-filter>
را که با طرح، میزبان و مسیر مطابقت دارد، اعلام کنید و آن را با فیلتر دسته بندی قابل مرور علامت گذاری کنید، همانطور که در اینجا نشان داده شده است:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<!-- both categories below are required -->
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:host="host"
android:pathPrefix="/path"
android:scheme="yourscheme"/>
</intent-filter>
برای کسب اطلاعات بیشتر، به مدیریت پیوندهای برنامه مراجعه کنید.