รูปแบบข้อมูลไฟล์แนบ

วิธีที่ง่ายที่สุดในการเพิ่มไฟล์แนบการแจ้งเตือน Nearby คือ แดชบอร์ดบีคอนของ Google อีกวิธีหนึ่งคือ Proximity Beacon API และรูปแบบข้อมูลไฟล์แนบที่อธิบายไว้ด้านล่าง

ไฟล์แนบสำหรับฟีเจอร์การแจ้งเตือน Nearby ต้องใช้ เนมสเปซ com.google.nearby และประเภทที่ประกอบด้วยภาษาแบบ 2 ตัวอักษร และเพิ่มคำต่อท้าย -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 อักขระ ซึ่งตามหลักการแล้ว คำกระตุ้นให้ดำเนินการ (Call-To-Action) ให้แก่ผู้ใช้ เช่น Order with your phone, skip the line Set up your thermostat หรือ Learn more about sea otters
  • url — URL สำหรับแอป เว็บไซต์ หรือบริการ
  • การกำหนดเป้าหมาย — กฎที่ไม่บังคับสำหรับการจำกัดการแสดงการแจ้งเตือน ตามบริบทของอุปกรณ์

รูปแบบ URL

การแจ้งเตือน Nearby รองรับ URL 3 รูปแบบ ดังนี้

URL ของเว็บ

URL ของเว็บคือ URL ปกติทั่วไป เมื่อได้รับ URL ของเว็บ ค่า ผู้ใช้จะได้รับแจ้งให้เปิด URL ในเบราว์เซอร์เริ่มต้น ไม่มีแอปพิเศษ ต้องมีการกำหนดค่า URL ของเว็บต้องใช้ HTTPS และมีการจัดรูปแบบเป็น URL ปกติ:

  https://www.example.com

หาก URL ของเว็บไม่ทริกเกอร์การแจ้งเตือน สาเหตุที่เป็นไปได้มากที่สุดคือ

  • การใช้ HTTP แทน HTTPS
  • ไม่อนุญาตให้มีการลิงก์กับ App Store เช่น play.google.com หน้าเว็บ ควรยืนหยัดด้วยตัวเองและให้ข้อมูลหรือการดำเนินการที่เป็นประโยชน์ใน หน้า Landing Page โดยตรง

ความตั้งใจของแอป

URL ของ Intent ของแอปใช้เพื่อทริกเกอร์ Intent ในแอป เมื่อแอป Intent ได้รับ URL แล้ว แอปที่เกี่ยวข้องจะตอบสนองต่อพารามิเตอร์ที่มีอยู่ใน URL หากมีตัวกรอง Intent ของแอปที่เกี่ยวข้องอยู่ หากแอป ไม่ได้ติดตั้ง ระบบจะนำผู้ใช้ไปยัง Play Store เพื่อติดตั้งแอป หลัง เมื่อติดตั้งแอปแล้ว ผู้ใช้จะเปิดแอปและไปยังฟีเจอร์ดังกล่าวได้ ที่นักพัฒนาซอฟต์แวร์ระบุไว้ URL ของ Intent ของแอปมีรูปแบบดังนี้

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

ดูรายละเอียดเพิ่มเติมเกี่ยวกับการจัดรูปแบบ URL ของ Intent ได้ที่ Android Intent กับ Chrome โปรดทราบว่าระบบจะไม่ส่งผ่านค่า Intent เพิ่มเติม

คุณยังสามารถสร้าง URL อย่างถูกต้องด้วยการสร้าง Intent แล้วใช้ 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));

Intent ของแอปรูปแบบอิสระ

ควรใช้ตัวเลือกนี้สำหรับ Intent ของแอปที่ไม่ตรงกับรูปแบบ เส้นทาง และชื่อแพ็กเกจ ใช้ตัวเลือกนี้เฉพาะเมื่อคุณมั่นใจว่า URL ของ Intent คือ รูปแบบที่ถูกต้อง

คุณอาจเลือกส่งผู้ใช้ไปยัง URL ที่ระบุแทน Play Store ใน ในกรณีที่ไม่ได้ติดตั้งแอปโดยการเพิ่ม พารามิเตอร์ S.browser_fallback_url ไปยัง Intent:

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

การกำหนดเป้าหมายตามบริบท

กฎ

การแจ้งเตือน Nearby รองรับกฎการกำหนดเป้าหมาย 4 กฎดังนี้

วันที่

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.00 น. ถึง 17.00 น.

    {
      "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 App Intent เท่านั้น ดังต่อไปนี้ ตัวอย่าง แสดงการแจ้งเตือนเมื่อไม่ได้ติดตั้งแอป

    {
      "title": "App not installed",
      "url": "intent://host/path#Intent;package=com.example",
      "targeting":[
        {
          "anyOfAppInstallStates": ["NOT_INSTALLED"]
        }
      ]
    }

กฎที่รวมกัน

ไฟล์แนบแต่ละไฟล์มีกฎการกำหนดเป้าหมายได้หลายกฎ กฎจาก ออบเจ็กต์การกำหนดเป้าหมายเดียวกันใช้ AND รวมเข้าด้วยกัน ตัวอย่างต่อไปนี้ แสดงการแจ้งเตือนทุกวันเสาร์และวันอาทิตย์ตั้งแต่ 9:00 น. ถึง 17:00 น.

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

กฎจากออบเจ็กต์การกำหนดเป้าหมายที่ต่างกันจะเป็น ORed togeter ดังต่อไปนี้ เช่น แสดงการแจ้งเตือนตั้งแต่ 9:00 น. ถึง 17:00 น. วันจันทร์ถึงศุกร์ บวกทั้งวันในวันเสาร์และอาทิตย์

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

เพิ่มตัวกรอง Intent ในแอป

ต้องกำหนดค่าให้แอปจัดการสคีม โฮสต์ และเส้นทางสำหรับ 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>

ดูข้อมูลเพิ่มเติมได้ที่ การจัดการ App Link