تنسيق بيانات المرفقات

وتتمثل أسهل طريقة لإضافة مرفقات إشعارات الأجهزة المجاورة في لوحة بيانات "إشارات Google": وبدلاً من ذلك، يمكنك استخدام Proximity Beacon API وتنسيق بيانات المرفقات الموضّح أدناه.

يجب أن تستخدم مرفقات ميزة "إشعارات الأجهزة المجاورة" مساحة الاسم 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 — عنوان المحتوى. يجب أن يكون طول title أقل. عن 40 حرفًا ويجب ألا يزيد عن 50 حرفًا. ينبغي أن يمنح هذا بشكل مثالي المستخدم عبارة تحث المستخدم على اتخاذ إجراء. على سبيل المثال: Order with your phone, skip the line Set up your thermostat أو Learn more about sea otters.
  • url: عنوان URL للتطبيق أو الموقع الإلكتروني أو الخدمة.
  • الاستهداف: قواعد اختيارية للحدّ من إذن الوصول إلى الإشعارات استنادًا إلى سياق الجهاز.

تنسيقات عناوين URL

تتوافق "إشعارات الأجهزة المجاورة" مع ثلاثة تنسيقات لعناوين URL:

عنوان URL على الويب

عنوان URL للويب هو نفسه عنوان URL العادي. عندما يتم تلقي عنوان URL على الويب، تعرض سيُطلب من المستخدم فتح عنوان URL في المتصفّح التلقائي. ما مِن تطبيق خاص. التهيئة مطلوبة. يجب أن تستخدم عناوين URL على الويب بروتوكول HTTPS، وأن يتم تنسيقها كملفات عنوان URL العادي:

  https://www.example.com

إذا لم يكن عنوان URL على الويب يؤدي إلى ظهور إشعار، من المرجّح أن تكون الأسباب التالية هي:

  • استخدام HTTP بدلاً من HTTPS
  • يُحظر الربط بمتجر التطبيقات، مثل play.google.com. صفحة الويب وينبغي أن تكون قائمة بذاتها وأن تقدم معلومات أو إجراءات مفيدة الصفحة المقصودة مباشرةً.

نية المستخدم من التطبيق

يتم استخدام عناوين URL المقصودة من التطبيق لتشغيل هدف في أحد التطبيقات. عند نية المستخدم من التطبيق تلقي عنوان URL، يستجيب التطبيق المرتبط للمعلمات المضمنة في عنوان URL، شريطة أن يكون فلتر الأهداف من التطبيق المقابل موجودًا. إذا كان التطبيق لم يتم تثبيته، يتم نقل المستخدم إلى متجر Play لتثبيته. بعد إذا ثبَّتوا التطبيق، يمكنهم بعد ذلك تشغيله والانتقال إلى الميزة المحددة من قبل المطور. يتم تنسيق عناوين URL المقصودة للتطبيقات على النحو التالي:

  intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui;end;

لمزيد من التفاصيل عن تنسيق عناوين URL المقصودة، يُرجى الاطّلاع على Android Intents باستخدام Chrome تجدر الإشارة إلى أنّه لا يتم تمرير الأهداف الإضافية.

يمكنك أيضًا إنشاء عنوان URL بشكل صحيح عن طريق إنشاء هدف، ثمّ استخدام intent.toUri(Intent.URI_INTENT_SCHEME)، كما هو موضح هنا:

    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 المقصود هو بشكل صحيح.

يمكنك اختيار إرسال المستخدم إلى عنوان URL محدّد بدلاً من "متجر Play" في الحدث الذي لم يتم تثبيت التطبيق فيه عن طريق إضافة المَعلمة S.browser_fallback_url إلى الغرض:

intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui; \
  S.browser_fallback_url=http%3A%2F%2Fm.yoursite.com%2Fpath%2F%;end;

استهداف السياق

القواعد

تتوافق ميزة "إشعارات عن قرب" مع أربع قواعد استهداف:

التاريخ

يتم استخدام 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"]
        }
      ]
    }

مجموعة القواعد

ويمكن أن تكون هناك قواعد استهداف متعددة لكل مرفق. القواعد من يتم ربط عنصر الاستهداف نفسه معًا. المثال التالي تعرض إشعارًا من الساعة 9 صباحًا إلى الساعة 5 مساءً يومَي السبت والأحد.

    {
      "title": "Weekend and work time",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00"
          "anyOfDaysOfWeek": [6, 7]
        }
      ]
    }

إنّ القواعد من عناصر الاستهداف المختلفة هي ORed togeter. ما يلي: على سبيل المثال إشعارًا من 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>

لمزيد من المعلومات، يُرجى مراجعة التعامل مع روابط التطبيقات: