Firebase动态链接自定义参数无法正确获取

时间:2019-10-18 10:32:02

标签: android firebase firebase-dynamic-links

我正在开发动态链接以共享页面内容,以便在另一设备中的同一应用程序中直接打开它。创建共享动态链接时,我要添加查询参数'productId'和'amount',但要获取的是productId,而不是amount,deepLink.getQueryParameter(“ amount”)始终返回null。这是我的代码:

 public Uri buildDeepLink(Uri deepLink, int minVersion) {
    String uriPrefix = getString(R.string.dynamic_links_uri_prefix);

    // Set dynamic link parameters:
    //  * URI prefix (required)
    //  * Android Parameters (required)
    //  * Deep link
    // [START build_dynamic_link]
    DynamicLink.Builder builder = FirebaseDynamicLinks.getInstance()
            .createDynamicLink()
            .setDynamicLinkDomain(uriPrefix)
            .setAndroidParameters(new DynamicLink.AndroidParameters.Builder()
                    .setMinimumVersion(minVersion)
                    .build())
            .setIosParameters(new DynamicLink.IosParameters
                    .Builder(getPackageName())
                    .build())
            .setLink(deepLink);

    // Build the dynamic link
    DynamicLink link = builder.buildDynamicLink();
    // [END build_dynamic_link]

    // Return the dynamic link as a URI
    return link.getUri();
}





  private String createCustomDeepLink(String deepLink) {
        try {

            if (!product_id.equals("null") && !price.equals("null")) {
                if (!TextUtils.isEmpty(queryParamters)) {
                    deepLink = deepLink + queryParamters;
                }
               /* deepLink = String.valueOf(mDeeplink.buildUpon()
                        .appendQueryParameter("apn", getPackageName())
                        .appendQueryParameter("isi", "1483438440")
                        .appendQueryParameter("ibi", getPackageName())

                        .build());*/
                deepLink = deepLink + "?product_id="
                        + product_id + "/price=" + price;

                mCustomUrl = String.valueOf(new URL(URLDecoder.decode(deepLink,
                        "UTF-8")));
                return mCustomUrl;
            } else {
                product_id = String.valueOf(125938);
                price = String.valueOf(120);
                deepLink = String.valueOf(mDeeplink.buildUpon()
                        .appendQueryParameter("isi", "1483438440")
                        .appendQueryParameter("ibi", getPackageName())
                        .appendQueryParameter("product_id", product_id)
                        .appendQueryParameter("price", price)
                        .build());
                mCustomUrl = String.valueOf(new URL(URLDecoder.decode(deepLink.toString(),
                        "UTF-8")));
                return mCustomUrl;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return mCustomUrl;
    }

这是我得到的深层链接: https://60cart.page.link/?amv=0&apn=com.pdd&link=https://www.60cart.com&isi=1483438440&ibi=com.pdd&product_id=14678&price=139

通过使用
              product_price = deepLink.getQueryParameter(AppConstants.RequestDataKey.PRICE);

我没有得到价格

0 个答案:

没有答案