yüklüyse uygulamama yönlendirmek için web sitemden nasıl bağlantılar oluşturulur

Dec 24 2020

Ne elde etmek isterdim

Bir kullanıcı web sitemdeki herhangi bir bağlantıyı tıkladığında, uygulamamdaki kullanıcıya özel bağlantıyı yönlendirmesini istiyorum (yüklüyse). Yüklü değilse, kullanıcıyı tarayıcıya bağlanmaya yönlendirin.

Misal:

Kullanıcı, içinde www.myapp.com/someplaceinmyapp adlı bir bağlantı içeren bir e-posta alır. Yüklüyse uygulamamdaki o sayfaya gider. Değilse, tarayıcıda o sayfaya gidin.

Bunun uygulamamdaki tüm sayfalar için olacağını unutmayın. Bu, web sayfamdaki herhangi bir bağlantı için geçerlidir.

Sorularım

Bunun belirli bir adı var mı? Derin bağlantı ve uygulama bağlantılarını biliyorum, ancak hangisinin benim için olduğundan emin değilim. 

Bu mümkün mü? Şu anda mümkün olup olmadığından bile emin değilim. 

Bunun kodu web sayfasında mı yoksa uygulamada mı olacak? örneğin: Javascript veya Kotlin veya manifest dosyasındaki bir şey.

Bunu nasıl yaparım? Muhtemelen en çok ihtiyacım olan şey bu.

Notlar

Web sayfamda "Uygulamayı kullan" yazan bir açılır pencere (yalnızca tarayıcıda) gösteren bir şey var. Yüklenmemişse oyun mağazasına gider. Yüklenirse, uygulamamdaki web sitemin ana sayfasına gider. En çok oyu alan cevabı (kabul edileni değil) kullanarak buradan nasıl yapacağımı buldum , bu yüzden manifestimde:

        <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>

Sorularıma eklemek istediğiniz herhangi bir şey varsa, memnuniyetle eklerim.

Yanıtlar

SamChen Dec 25 2020 at 02:55

Specifc girmek için Activityveya Fragmentkullanarak, bir url uygulamanızın Derin Bağlantılar Navigasyon Bileşeni dan önerilir.

1. Gezinme kaynak dosyasına bir URL Derin Bağlantısı ekleyin (Nitelikler panelinden):

<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. AndroidManifestDosyaya Gezinme özelliğini ekleyin :

<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. Bağlantıyı web tarayıcısında veya kısa mesajda kullanın: "www.example.com/roomTest/-1"

  • Birden çok bağımsız değişkeni iletmek için, bunları "&" şeklinde bağlayın: "www.example.com/roomText/-1&true" (istendiği gibi xml'de "&" yeniden biçimlendirin).

  • Yararlı video: https://www.youtube.com/watch?v=hEJ78_KLcfA

  • Faydalı okuma: https://developer.android.com/guide/navigation/navigation-deep-link

  • Deep Link'ten geri yığın davranışı: https://stackoverflow.com/a/50359375/3466808

Amy Jan 06 2021 at 07:01

Bunu yapmanın yolunun, android stüdyosunda Araçlar -> Uygulama Bağlantıları asistanı altında bulabileceğiniz Uygulama Bağlantıları yardımcısını kullanmak olduğunu buldum. Açtığınızda yan tarafta görmeniz gereken şey bu:

Aşama 1

"URL Eşleme Düzenleyicisini Aç" ı tıklayın, ardından bir URL eşlemesi ekleyin ("+" işaretini tıklayın). Ana bilgisayarda, web sitenizin bağlantısını koyun, örneğin:https://www.example.com. Yol için, seçim kutusunda sadece "yol" u seçin ve yazım kutusuna hiçbir şey koymayın.

Adım 2

Aktivite Seç düğmesi Kotlin için çalışmaz, bu yüzden manuel olarak girmeniz gereken kod burada.

    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")
    }
}

ve onCreate eklentinizde handleIntent(intent)

Aşama 3

"Dijital Varlık Bağlantıları Dosya Oluşturucusunu Aç" ı tıklayın. Bilgilerin çoğu halihazırda doldurulmuş olacaktır, bu nedenle "Dijital Varlık Bağlantıları Dosyası Oluştur" seçeneğine tıklayabilirsiniz. Web sitenizde ".well-known" adlı bir klasör oluşturun ve oraya "assetlinks.json" adlı bir dosya koyun, önizlemeyi buraya yapıştırın. Öyleyse gittiğinizdehttps://www.yourwebsite.com/.well-known/assetlinks.jsonDijital varlık bağlantıları dosyasını görebilmeniz gerekir. Ayrıca diğer web sitelerinin Dijital varlık bağlantıları dosyasını da görebilirsiniz. Google için olduğu gibi,https://www.google.com/.well-known/assetlinks.json.

Ardından, "Bağla ve Doğrula" düğmesini tıklamaya devam edin. Her şey yolunda giderse, düğmenin altında şunu görmelisiniz:

4. adım

Test zamanı! Devam edin ve "Uygulama bağlantılarını test et" i tıklayın ve web sitenizden bir URL girin. Her şey yolunda giderse, bir netleştirme diyaloğu görmemelisiniz.

Ayrıca kendime içinde bağlantı bulunan bir e-posta göndererek daha fazla test yapmayı seviyorum.

Notlar

Uygulama Bağlantıları Asistanını yalnızca web siteniz http yerine https kullanıyorsa kullanabilirsiniz.

android:launchMode="singleTask"Manifest'teki etkinlik etiketime ekledim , bu, web sitenizden bir e-postadaki bir bağlantıya tıklarsanız yeni bir pencerede açılacağı anlamına gelir.

Burada bununla ilgili bir video içeren bir dokümanları var (Java kullandıklarını unutmayın)

AlphaOne Dec 24 2020 at 10:43

Uygulamanızda Android Uygulama bağlantılarını kullanın. Doğru şekilde uygulanırsa, kullanıcı doğrudan uygulamada belirtilen hedefe taşınacaktır.

Bu belgelerde bununla ilgili daha fazla bilgi:

Android Uygulama Bağlantılarını Doğrulayın

Örtülü bir derin bağlantı oluşturun