إذا كان تطبيقك الذي يستخدم Smart Lock لكلمات المرور يشارك قاعدة بيانات المستخدم مع موقعك الإلكتروني، أو إذا كان تطبيقك وموقعك الإلكتروني يستخدمان مزودي خدمة تسجيل الدخول الموحّد مثل تسجيل الدخول بحساب Google، يمكنك ربط التطبيق بموقع الويب حتى يتمكن المستخدمون من حفظ بيانات الاعتماد الخاصة بهم مرة واحدة ثم تسجيل الدخول تلقائيًا إلى كل من التطبيق والموقع الإلكتروني.
لربط تطبيق بموقع إلكتروني، يجب تعريف عمليات الربط من خلال استضافة ملف JSON لروابط التنقل إلى مواد العرض الرقمية على موقعك الإلكتروني، وإضافة رابط إلى ملف رابط التنقل إلى مواد العرض الرقمية في بيان التطبيق.
من خلال استضافة بيان "روابط مواد العرض الرقمية" على موقعك الإلكتروني، يتم أيضًا السماح لموقعك الإلكتروني بمشاركة بيانات الملء التلقائي مع تطبيقك عند تشغيله على الإصدار 8.0 من نظام التشغيل Android والإصدارات الأحدث.
المتطلبات الأساسية
يجب أن يكون نطاق تسجيل الدخول إلى موقعك الإلكتروني متاحًا عبر HTTPS.
ربط تطبيقك بموقعك الإلكتروني
أنشِئ ملف Digital Asset Links بتنسيق JSON.
على سبيل المثال، للتوضيح بأنّه يمكن للموقع الإلكتروني
https://signin.example.com
وتطبيق Android الذي يحمل اسم الحزمةcom.example
مشاركة بيانات اعتماد تسجيل الدخول، يمكنك إنشاء ملف باسمassetlinks.json
يتضمّن المحتوى التالي:[{ "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "https://signin.example.com" } }, { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "android_app", "package_name": "com.example", "sha256_cert_fingerprints": [ "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B" ] } }]
الحقل
relation
هو مصفوفة من سلسلة واحدة أو أكثر تصف العلاقة التي يتم الإعلان عنها. للإشارة إلى أن التطبيقات والمواقع الإلكترونية تشارك بيانات اعتماد تسجيل الدخول، حدِّد السلسلةdelegate_permission/common.get_login_creds
.الحقل
target
هو كائن يحدد مادة العرض التي ينطبق عليها التعريف. تحدّد الحقول التالية موقعًا إلكترونيًا:namespace
web
site
عنوان URL للموقع الإلكتروني بالتنسيق
https://domain[:optional_port]
، على سبيل المثال،https://www.example.com
.يجب أن تكون domain مؤهَّلة بالكامل، ويجب حذف optional_port عند استخدام المنفذ 443 مع HTTPS.
يمكن أن يكون هدف
site
نطاقًا جذريًا فقط، ولا يمكنك حصر عملية ربط التطبيق بدليل فرعي محدّد. ولا تضمِّن مسارًا في عنوان URL، مثل الشرطة المائلة اللاحقة.لا تُعتبر النطاقات الفرعية مطابقة: أي إذا حدّدت domain على
www.example.com
، لن يكون النطاقwww.counter.example.com
مرتبطًا بتطبيقك.تحدد الحقول التالية تطبيق Android:
namespace
android_app
package_name
اسم الحزمة الذي تم تعريفه في بيان التطبيق على سبيل المثال: com.example.android
sha256_cert_fingerprints
الملفات المرجعية لشهادة SHA256 لشهادة توقيع تطبيقك. يمكنك استخدام الأمر التالي لإنشاء بصمة الإصبع: $ keytool -list -v -keystore my-release-key.keystore
لمعرفة التفاصيل، يمكنك الاطّلاع على مرجع روابط التنقل إلى مواد العرض الرقمية.
استضِف ملف Digital Assets Link بتنسيق JSON في الموقع التالي على نطاق تسجيل الدخول:
https://domain[:optional_port]/.well-known/assetlinks.json
على سبيل المثال، إذا كان نطاق تسجيل الدخول هو
signin.example.com
، يمكنك استضافة ملف JSON علىhttps://signin.example.com/.well-known/assetlinks.json
.يجب أن يكون نوع MIME لملف رابط الأصول الرقمية هو JSON. تأكَّد من أن الخادم يرسل عنوان
Content-Type: application/json
في الاستجابة.تأكّد من أن مضيفك يسمح لـ Google باسترداد ملف رابط الأصول الرقمية. إذا كان لديك ملف
robots.txt
، يجب أن يسمح لوكيل Googlebot باسترداد/.well-known/assetlinks.json
. يمكن لمعظم المواقع الإلكترونية السماح لأي وكيل مبرمَج باسترداد الملفات في مسار/.well-known/
حتى تتمكّن الخدمات الأخرى من الوصول إلى البيانات الوصفية في هذه الملفات:User-agent: * Allow: /.well-known/
الإعلان عن عملية الربط في تطبيق Android
أضِف السطر التالي إلى ملف البيان ضمن
<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
أضِف مورد سلسلة
asset_statements
إلى ملفstrings.xml
. السلسلةasset_statements
هي كائن JSON يحدّد ملفاتassetlinks.json
المطلوب تحميلها. ويجب تخطي أي فواصل عليا وعلامات اقتباس تستخدمها في السلسلة. مثلاً:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
> GET /.well-known/assetlinks.json HTTP/1.1 > User-Agent: curl/7.35.0 > Host: signin.example.com < HTTP/1.1 200 OK < Content-Type: application/json
انشر التطبيق في "متجر Google Play". يجب إصداره في القناة العامة لكي يتم اختيار الروابط.
(اختياري) أكمِل نموذج الارتباط في Smart Lock لكلمات المرور وأرسِله للإشارة إلى أنّك أجريت العملية. تتحقّق Google بشكل دوري مما إذا كانت الارتباطات التي يتم إرسالها من خلال النموذج تعمل فعلاً، وقد تتواصل معك في حال حدوث مشاكل.
عند اكتمال عملية إثبات الملكية، سيتمكّن مستخدمو تطبيقك من حفظ بيانات الاعتماد الخاصة بهم على تطبيقك أو على موقعك الإلكتروني وتسجيل الدخول تلقائيًا إلىهما.
مثال: ربط تطبيقات متعددة بموقع إلكتروني
يمكنك ربط تطبيقات متعددة بموقع إلكتروني عن طريق تحديد كل تطبيق في ملف Digital Assets Link (رابط الأصول الرقمية). على سبيل المثال، لربط التطبيقَين com.example
وcom.example.pro
بالموقع الإلكتروني على https://signin.example.com/
، حدِّد
كلا التطبيقَين في ملف JSON المستضاف في
https://signin.example.com/.well-known/assetlinks.json
:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://signin.example.com"
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example.pro",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
}]
بعد ذلك، يمكنك الإعلان عن عملية الربط في كلا التطبيقين:
أضِف السطر التالي إلى ملف البيان ضمن
<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
أضِف مورد السلسلة التالي إلى ملف
strings.xml
:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
مثال: ربط التطبيقات بمواقع إلكترونية متعددة
يمكنك ربط تطبيقات بمواقع إلكترونية متعددة عن طريق تحديد كل موقع إلكتروني في ملف رابط الأصول الرقمية واستضافة الملف على كل موقع إلكتروني. على سبيل المثال،
لربط التطبيقَين com.example
وcom.example.pro
بالموقع الإلكتروني
https://signin.example.com/
وhttps://m.example.com/
، حدِّد
كلا التطبيقَين والموقعَين الإلكترونيَّين في ملف JSON الذي تتم استضافته في
https://signin.example.com/.well-known/assetlinks.json
:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://signin.example.com"
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://m.example.com"
},
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example.pro",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
}]
بعد ذلك، في ملف JSON المستضاف على
https://m.example.com/.well-known/assetlinks.json
، أدرِج الملف الأساسي "روابط مواد العرض الرقمية":
[{
"include": "https://signin.example.com/.well-known/assetlinks.json"
}]
وأخيرًا، يمكنك الإعلان عن عملية الربط في كلا التطبيقين:
أضِف السطر التالي إلى ملف البيان ضمن
<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
أضِف مورد السلسلة التالي إلى ملف
strings.xml
:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>