कैसे स्थापित करने के लिए मेरी वेबसाइट से सीधे अपने ऐप के लिए लिंक बनाने के लिए
मैं क्या हासिल करना चाहूंगा
जब कोई उपयोगकर्ता मेरी वेबसाइट के किसी भी लिंक पर क्लिक करता है, तो मैं चाहूंगा कि वह मेरे ऐप (यदि यह स्थापित है) में उपयोगकर्ता विशिष्ट लिंक को निर्देशित करे। यदि यह स्थापित नहीं है, तो उपयोगकर्ता को ब्राउज़र में लिंक करने के लिए निर्देशित करें।
उदाहरण:
उपयोगकर्ता को इसमें एक लिंक के साथ एक ईमेल मिलता है, जिसका नाम है: www.myapp.com/someplaceinmyapp यह मेरे ऐप में उस पृष्ठ पर जाता है यदि यह स्थापित है। यदि नहीं, तो ब्राउज़र में उस पृष्ठ पर जाएं।
ध्यान रखें कि यह मेरे ऐप के सभी पृष्ठों के लिए होगा। तो यह मेरे वेबपेज से किसी भी लिंक के लिए लागू होता है।
मेरे सवाल
क्या इसका कोई विशिष्ट नाम है? मुझे गहरे लिंकिंग और ऐप लिंक के बारे में पता है, लेकिन मुझे यकीन नहीं है कि कौन सा मेरे लिए है।
क्या यह भी संभव है? मुझे यकीन नहीं है कि यह इस समय संभव है।
क्या इसके लिए कोड वेबेज या ऐप में होगा? उदाहरण: प्रकट फ़ाइल में जावास्क्रिप्ट या कोटलिन या कुछ।
मैं यह कैसे करु? शायद यही वह चीज है जिसकी मुझे सबसे ज्यादा जरूरत है।
टिप्पणियाँ
मुझे अपने वेबपेज में कुछ मिला है जो पॉपअप (केवल ब्राउज़र में) दिखाता है जो कहता है कि "एप्लिकेशन का उपयोग करें"। यदि स्थापित नहीं है, तो प्ले स्टोर पर जाता है। यदि स्थापित है, तो मेरे ऐप में मेरी वेबसाइट के होमपेज पर जाता है। मैंने पाया है कि यह कैसे से ऐसा करने के लिए यहां सबसे ज्यादा वोटों के साथ जवाब (नहीं स्वीकार किए जाते हैं एक) तो मेरे प्रकट में मैं का उपयोग कर:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="www.myapp.com"
android:pathPrefix="/install.html" />
</intent-filter>
यदि आपके पास कुछ भी है तो आप मेरे सवालों में जोड़ना चाहेंगे, मैं खुशी से इसे जोड़ूंगा।
जवाब
किसी url से निर्दिष्ट Activity
या Fragment
अपने ऐप में प्रवेश करने के लिए , नेविगेशन घटक से डीप लिंक का उपयोग करने की सिफारिश की जाती है।
1. नेविगेशन संसाधन फ़ाइल में एक Url डीप लिंक जोड़ें (गुण पैनल से):
<fragment
android:id="@+id/studentEditorFragment"
android:name="com.example.roomtest.studentEditor.StudentEditorFragment"
android:label="StudentEditorFragment"
tools:layout="@layout/fragment_student_editor">
<argument
android:name="studentId"
app:argType="long" />
<deepLink
android:id="@+id/deepLink"
app:uri="www.example.com/roomTest/{studentId}" /> //here, company domain name followed by application path or argument
</fragment>
2. AndroidManifest
फ़ाइल में नेविगेशन विशेषता जोड़ें :
<activity android:name=".MainActivity"> //【inside the "<activity>" tag】
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<nav-graph android:value="@navigation/navigation" /> //here
</activity>
3. वेब ब्राउज़र या पाठ संदेश में लिंक का उपयोग करें: "www.example.com/roomTest/-1"
- एकाधिक तर्कों को पारित करने के लिए, बस उन्हें "&" द्वारा कनेक्ट करें: जैसे "www.example.com/roomText/-1&true" (सुधारित "और" जैसा कि xml में बताया गया है)।
सहायक वीडियो: https://www.youtube.com/watch?v=hEJ78_KLcfA
उपयोगी पढ़ने: https://developer.android.com/guide/navigation/navigation-deep-link
डीप लिंक से वापस स्टैक व्यवहार: https://stackoverflow.com/a/50359375/3466808
मैंने पाया कि ऐसा करने का तरीका, ऐप लिंक सहायक का उपयोग कर रहा था, जिसे आप टूल -> ऐप लिंक सहायक के तहत एंड्रॉइड स्टूडियो में पा सकते हैं। इसे खोलने के बाद आपको एक तरफ देखना चाहिए:
चरण 1
"ओपन यूआरएल मैपिंग एडिटर" पर क्लिक करें, फिर एक URL मैपिंग जोड़ें ("+" पर क्लिक करें)। होस्ट में, अपनी वेबसाइट लिंक डालें जैसे:https://www.example.com। पथ के लिए, चयन बॉक्स में, बस "पथ" चुनें और टाइप बॉक्स में कुछ भी नहीं डालें।
चरण दो
गतिविधि गतिविधि बटन कोटलिन के लिए काम नहीं करता है, इसलिए यहां वह कोड है जिसे आपको मैन्युअल रूप से डालना होगा।
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
handleIntent(intent)
}
private fun handleIntent(intent: Intent) {
val wbWebView = findViewById<View>(R.id.your_webview) as WebView
val appLinkAction = intent.action
val appLinkData = intent.data
if (Intent.ACTION_VIEW == appLinkAction && appLinkData != null) {
wbWebView.loadUrl(appLinkData.toString())
} else {
// default link that it goes to when opening app
wbWebView.loadUrl("https://www.example.com")
}
}
और अपने onCreate में जोड़ें handleIntent(intent)
चरण 3
"डिजिटल एसेट लिंक फ़ाइल जेनरेटर खोलें" पर क्लिक करें। अधिकांश जानकारी पहले से ही भर दी जाएगी, इसलिए आप "डिजिटल एसेट लिंक फ़ाइल जनरेट" पर क्लिक कर सकते हैं। अपनी वेबसाइट में ".well-ज्ञात" नामक एक फ़ोल्डर बनाएं और फिर "एसेटलिंक्स.जॉन" नामक एक फ़ाइल डालें, पूर्वावलोकन को वहां पेस्ट करें। इसलिए जब तुम जाओhttps://www.yourwebsite.com/.well-known/assetlinks.jsonआपको डिजिटल एसेट लिंक फ़ाइल देखने में सक्षम होना चाहिए। आप अन्य वेबसाइटों को भी देख सकते हैं डिजिटल संपत्ति लिंक फ़ाइल। जैसे google के लिए,https://www.google.com/.well-known/assetlinks.json।
फिर "लिंक और सत्यापित करें" बटन पर क्लिक करने के लिए आगे बढ़ें, यदि सबकुछ ठीक हो जाता है तो आपको बटन के नीचे दिखाई देना चाहिए:
चरण 4
परीक्षण का समय! आगे बढ़ें और "टेस्ट ऐप लिंक" पर क्लिक करें और अपनी वेबसाइट से एक URL डालें। यदि सबकुछ ठीक हो जाता है, तो आपको एक संवाद नहीं देखना चाहिए।
मैं इसमें लिंक के साथ खुद को ईमेल भेजकर आगे की टेस्टिंग करना भी पसंद करता हूं।
टिप्पणियाँ
यदि आपकी वेबसाइट http के बजाय https का उपयोग कर रही है, तो आप केवल ऐप लिंक सहायक का उपयोग कर सकते हैं।
मैंने android:launchMode="singleTask"
मेनिफेस्ट में अपनी गतिविधि टैग में जोड़ दी, इसका मतलब है कि यदि आप ईमेल में अपनी वेबसाइट के लिंक पर क्लिक करते हैं तो यह एक नई विंडो में खुलेगा।
उनके पास इस बारे में एक डॉक है जिसमें एक वीडियो शामिल है (ध्यान रखें कि वे जावा का उपयोग कर रहे हैं)
अपने ऐप में एंड्रॉइड ऐप लिंक का उपयोग करें। यदि इसे ठीक से लागू किया जाता है, तो उपयोगकर्ता को सीधे ऐप में निर्दिष्ट गंतव्य पर ले जाया जाएगा।
इन डॉक्स में इसके बारे में अधिक जानकारी:
Android ऐप लिंक सत्यापित करें
एक अंतर्निहित गहरी लिंक बनाएं