与Google Play服务缓存相关的Firebase动态链接问题

时间:2019-04-16 07:35:38

标签: firebase firebase-dynamic-links

我想使用Firebase动态链接在应用之间实现数据传输。 它通常可以正常工作。 但是有时发件人更改了参数值,但收件人却收到了先前的参数值。 在这种情况下,我从设备上删除了Google Play服务缓存。之后,我可以看到它再次起作用。

有人知道为什么吗?

例如:

  1. 发件人

    String url = "https://nyr9b.app.goo.gl/?efr=1&ius=example&apn=com.example.com&ibi=com.example.com&isi=12345656&link=";
        String link = "https://www.example.com/?sc=aaabb&no=12345&text=abce";
    
        try {
            url += URLEncoder.encode(link, "utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
    
  2. 接收器

        FirebaseDynamicLinks.getInstance()
        .getDynamicLink(getIntent())
        .addOnSuccessListener(this, new 
        OnSuccessListener<PendingDynamicLinkData>(){
            @Override
            public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                // Get deep link from result (may be null if no link is found)
                Uri deepLink = null;
                if (pendingDynamicLinkData != null) {
                    deepLink = pendingDynamicLinkData.getLink();
    
                    //For Tphone
                    if(deepLink.toString().contains("aaabb"){
    
                        String tDynamicLink ="";
                        try {
                            tDynamicLink = URLDecoder.decode((deepLink.toString()).replaceAll("#%","%23%25"),"UTF-8");
                        } catch (IllegalArgumentException e){
                            tDynamicLink = deepLink.toString();
                        } catch (UnsupportedEncodingException e) {
                            tDynamicLink = deepLink.toString();
                        }
    
    
                        Uri url = Uri.parse(tDynamicLink);
                        String no = url.getQueryParameter("no");
                       String text = url.getQueryParameter("text").replaceAll("[^0-9|a-z|A-Z|ㄱ-ㅎ|가-힣ㅏ-ㅣ]", "");
    
        })
        .addOnFailureListener(this, new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.w(TAG, "getDynamicLink:onFailure", e);
            }
        });
    

正常工作。

0 个答案:

没有答案