分支机构深层链接未打开游戏商店

时间:2020-08-24 11:45:52

标签: android kotlin branch.io

我在Kotlin的android应用中使用Branch深度链接,我使用以下链接https://help.branch.io/developers-hub/docs/android-basic-integration

AndroidManifest.xml:

  <application
                android:name="net.app.activity.application"
                android:allowBackup="false"
                android:appComponentFactory="whateverString"
                android:icon="@mipmap/ic_launcher"
                android:label="@string/app_name"
                android:roundIcon="@mipmap/ic_launcher"
                android:supportsRtl="false"
                android:theme="@style/AppTheme"
                android:usesCleartextTraffic="true"
                tools:replace="android:supportsRtl,android:allowBackup,android:appComponentFactory">
            <activity android:name="net.app.activity.splash.SplashActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
                <intent-filter>
                    <data android:scheme="app" />
                    <action android:name="android.intent.action.VIEW" />
    
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.BROWSABLE" />
                </intent-filter>
                <!-- Branch App Links (optional) -->
                <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:scheme="https" android:host="app.test-app.link" />
                    <data android:scheme="https" android:host="app-alternate.test-app.link" />
                </intent-filter>
    
            </activity>
        <meta-data
                android:name="io.branch.sdk.BranchKey"
                android:value="key...." />
        <meta-data
                android:name="io.branch.sdk.BranchKey.test"
                android:value="key...." />
        <meta-data
                android:name="io.branch.sdk.TestMode"
 android:value="false" /> 

我将Branch添加到我的ApplicationClass.java中:

//用于调试的分支记录 Branch.enableLogging();

// Branch object initialization
Branch.getAutoInstance(this);

我将如下所示的Branch添加到我的lancherActivity中,即SplashActivity.kt:

  override fun onStart() {
        super.onStart()
        // Branch init
        Branch.sessionBuilder(this).withCallback(branchListener).withData(this.intent?.data).init()

    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        this.intent = intent
        // Branch reinit (in case Activity is already in foreground when Branch link is clicked)
        Branch.sessionBuilder(this).withCallback(branchListener).reInit()
    }

    object branchListener : Branch.BranchReferralInitListener {
        override fun onInitFinished(referringParams: JSONObject?, error: BranchError?) {
            if (error == null) {
                Log.i("BRANCH SDK", referringParams.toString())
                // Retrieve deeplink keys from 'referringParams' and evaluate the values to determine where to route the user
                // Check '+clicked_branch_link' before deciding whether to use your Branch routing logic
            } else {
                Log.e("BRANCH SDK", error.message)
            }
        }

    }

在我的应用程序中,在我的一个UI中,包含名称,数量,价格等所有详细信息的产品...我要共享此产品,我创建了一个共享按钮,当我单击时,选择“复制到按...”,我复制了网址,然后将其粘贴到导航器中,我希望该应用将在应用商店中打开,但我没有得到这个结果。 这是我的共享代码:

shareMerchant.setOnClickListener {
            val image = merchant!!.logo
            val url = this.getString(R.string.image_URL) + image
            buo = Utility(this).prepareSharingLink(
                merchant!!.id.toString(),
                "store",
                url,
                UtilityTools.getInstance().getValue(merchant!!.name)
            )
            val lp = LinkProperties()

            val message =
              "Check out this store on App"


            val ss = ShareSheetStyle(this, "Check this out!", message)
                .setCopyUrlStyle(
                    resources.getDrawable(android.R.drawable.ic_menu_send, this.theme),
                    "Copy",
                    "Added to clipboard"
                )
                .setMoreOptionStyle(
                    resources.getDrawable(android.R.drawable.ic_menu_search, this.theme),
                    "Show more"
                )
                .addPreferredSharingOption(SharingHelper.SHARE_WITH.EMAIL)
                .addPreferredSharingOption(SharingHelper.SHARE_WITH.MESSAGE)
                .addPreferredSharingOption(SharingHelper.SHARE_WITH.HANGOUT)
                .setAsFullWidthStyle(true)
                .setSharingTitle("Share With")

            buo.showShareSheet(this, lp, ss, object : Branch.BranchLinkShareListener {
                override fun onShareLinkDialogLaunched() {}
                override fun onShareLinkDialogDismissed() {}
                override fun onLinkShareResponse(
                    sharedLink: String?,
                    sharedChannel: String?,
                    error: BranchError?
                ) {
                    val metaData: java.util.HashMap<String, String> = java.util.HashMap()
                    if (error == null) {
                        metaData[Defines.Jsonkey.SharedLink.key] = sharedLink!!
                    } else {
                        metaData[Defines.Jsonkey.ShareError.key] = error.message
                    }
                }

                override fun onChannelSelected(channelName: String) {}
            }) 

prepareSharingLink代码如下:

fun prepareSharingLink(
        itemID: String,
        itemType: String,
        imageURL: String?,
        customTitle: String = ""
    ): BranchUniversalObject {

        val canonical = itemType.plus("/").plus(itemID)
        val branchUniversalObject = BranchUniversalObject()
        branchUniversalObject.canonicalIdentifier = canonical
        branchUniversalObject.title = customTitle
        branchUniversalObject.setContentDescription("")
        branchUniversalObject.setContentImageUrl(imageURL!!)
        branchUniversalObject.contentMetadata.customMetadata["itemType"] = itemType
        branchUniversalObject.contentMetadata.customMetadata["itemID"] = itemID
        branchUniversalObject.isLocallyIndexable
        branchUniversalObject.isPublicallyIndexable
        branchUniversalObject.setContentIndexingMode(BranchUniversalObject.CONTENT_INDEX_MODE.PRIVATE)
        return branchUniversalObject
    }

我想知道我的代码中是否有错误或遗漏?为何分支机构Deep Link无法在Play商店中打开?

0 个答案:

没有答案