Почему моя ссылка Dynami c не сохранилась после установки Play Store? - PullRequest
1 голос
/ 31 января 2020

Я пытаюсь настроить динамические ссылки c, чтобы ссылка глубоко связывала пользователя с приложением, если оно уже установлено, и магазином воспроизведения, если он этого не делает. Я ожидаю, что ссылка выживет в процессе установки Play Store и будет отправлена ​​в активную программу запуска со ссылкой. Динамическая ссылка c работает, когда приложение уже установлено. Однако, когда приложение не установлено, оно отправляет пользователя в магазин воспроизведения, но ссылка Dynami c не сохраняется в процессе установки. Я читал, что кнопка «Открыть» должна измениться на «Продолжить», когда пользователь отправляется в магазин воспроизведения с динамической ссылкой c, но когда я это делаю, она по-прежнему говорит «Открыть». Вот моя активность в AndroidManifest. xml.

        <activity android:name=".share.DeepLinkActivity"
        android:theme="@style/AppTheme"
        >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <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:host="housebook.com"
                android:scheme="https"/>
            <data
                android:host="housebook.com"
                android:scheme="http"/>
        </intent-filter>
        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <data
                android:host="housebook.page.link"
                android:scheme="https"/>
            <data
                android:host="housebook.page.link"
                android:scheme="http"/>
        </intent-filter>

    </activity>

Вот моя DeepLinkActivity

package chenige.chkchk.wairz.share

import android.app.AlertDialog
import android.content.Intent
import android.os.Bundle
import chenige.chkchk.wairz.BaseActivity
import chenige.chkchk.wairz.landing.LandingActivity
import chenige.chkchk.wairz.model.ShareDeepLink
import chenige.chkchk.wairz.sign_in.SignInActivity
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.dynamiclinks.FirebaseDynamicLinks

class DeepLinkActivity : BaseActivity() {

    companion object {
        const val SHARE_DEEP_LINK = "SHARE_DEEP_LINK"
    }
    var mAuth = FirebaseAuth.getInstance()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)


        if(intent.data != null){
            FirebaseDynamicLinks.getInstance().getDynamicLink(intent).addOnSuccessListener { pendingDynamicLinkData ->

                if(pendingDynamicLinkData != null) {

                    val houseId = pendingDynamicLinkData.link!!.getQueryParameter("House")
                    val shareId = pendingDynamicLinkData.link!!.getQueryParameter("Share")
                    goIntoAppWithShare(houseId!!, shareId!!)
                }else{
                    goIntoApp()
                }

            }.addOnFailureListener {failure ->
                showErrorRetrievingLink(failure.message!!)
            }

        }else{
            goIntoApp()
        }

    }


    fun goIntoAppWithShare(houseId: String, shareId: String){
        val intent : Intent
        if (mAuth.currentUser != null) {
            intent = Intent(this, LandingActivity::class.java)
        }else{
            intent = Intent(this, SignInActivity::class.java)
        }

        intent.putExtra(SHARE_DEEP_LINK, ShareDeepLink(houseId, shareId))
        intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        startActivity(intent)
        finish()
    }

    fun goIntoApp(){

        val intent : Intent
        if (mAuth.currentUser != null) {
            intent = Intent(this, LandingActivity::class.java)
        }else{
            intent = Intent(this, SignInActivity::class.java)
        }
        startActivity(intent)
        finish()
    }


    fun showErrorRetrievingLink(error: String) {

        val dialog = AlertDialog.Builder(this).setTitle("Error Retrieving House").setMessage("HouseBook has had an issue retrieving the shared house.")
                .setPositiveButton("Ok.") { dialog, i ->
                    goIntoApp()
                }

        dialog.show()
    }
}

Я добавил динамическую ссылку c в консоли Firebase как https://housebook.page.link enter image description here

Я добавил отпечаток сертификата 256 SHA.

Ссылка, которую я ожидаю, но не работаю, https://housebook.page.link/nvfVf7N91D7dgBLV7

Отладка с помощью https://housebook.page.link/nvfVf7N91D7dgBLV7?d=1 показывает только одно предупреждение о фишинге. Я попытался добавить конфигурацию, чтобы убрать это предупреждение go, но это не помогает. Кто-нибудь знает, почему ссылка не переживает процесс установки? Я боролся с этим вот уже 2 недели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...