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

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

ไฟล์แนบสําหรับฟีเจอร์การแจ้งเตือนใกล้เคียงต้องใช้เนมสเปซ 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 ตัว การดําเนินการนี้ควรจะแสดง คํากระตุ้นการตัดสินใจให้แก่ผู้ใช้ เช่น 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 โดยตรง

Intent ของแอป

ระบบจะใช้ URL Intent ของแอปเพื่อทริกเกอร์ Intent ในแอป เมื่อได้รับ URL Intent ของแอป แอปที่เกี่ยวข้องจะตอบสนองพารามิเตอร์ที่อยู่ใน 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 ของแอปรูปแบบอิสระ

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

คุณอาจเลือกส่งผู้ใช้ไปยัง URL ที่ระบุแทน Play Store ในกรณีที่ไม่ได้ติดตั้งแอปโดยเพิ่มพารามิเตอร์ S.browser_excluded_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 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]
        }
      ]
    }

กฎจากออบเจ็กต์การกําหนดเป้าหมายต่างๆ จะใช้ OR ร่วมกัน ตัวอย่างต่อไปนี้แสดงการแจ้งเตือนตั้งแต่ 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