>

다음과 같이 URL에 대한 짧은 링크를 만들어야합니다. howdoyoudo.co.il?id=123&evaluator=7

다음 코드를 사용하면 howdoyoudo.co.il?id=123

으로 연결되는 부분 단축키가 있습니다.

howdoyoudo.co.il?id=123%26evaluator=7과 같은 URL을 패스로 설정하려고했습니다. 부분 URL이있는 바로 가기가 계속 표시됩니다.

코드는 다음과 같습니다-

String evaluationLink = "howdoyoudo.co.il?id=123%26evaluator=7";
String longLink = "https://k5xt4.app.goo.gl/?link=" + evaluationLink;
        Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
                .setLongLink(Uri.parse(longLink))
                .buildShortDynamicLink()
                .addOnCompleteListener(new OnCompleteListener<ShortDynamicLink>() {
                    @Override
                    public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                        if (task.isSuccessful()) {
                            Uri shortLink = task.getResult().getShortLink();
                            Uri flowchartLink =  task.getResult().getPreviewLink();
                            //Partial shortLink :(
                        } else {
                            // Error
                        }
                    }
                });

업데이트 된 코드 :

       Short i = 10; //for testing only
        String evaluationLink = "http://howdoyoudo.co.il?id=123";
        String longLink = "https://k5xt4.app.goo.gl/?link=" + evaluationLink + "&evaluatorID=" + Integer.toString(i);
        String encodedLink = null;
        try {
            encodedLink = URLEncoder.encode(longLink, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
                .setLongLink(Uri.parse(encodedLink))
                .buildShortDynamicLink()
                .addOnCompleteListener(new OnCompleteListener<ShortDynamicLink>() {
                    @Override
                    public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                        if (task.isSuccessful()) {
                            // Short link created
                            Uri shortLink = task.getResult().getShortLink();
                            Uri flowchartLink =task.getResult().getPreviewLink();
//                                
                        } else {
                            // Error
                            // ...
                        }
                    }
                });


  • 답변 # 1

    해결 :

    먼저 다음과 같은 매개 변수로 링크를 인코딩했습니다.

    String evaluationLink = "http://howdoyoudo.co.il?id=123&evaluatorID=10";
            String encodedLink = null;
            try {
                encodedLink = URLEncoder.encode(evaluationLink, "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
    
    

    문자열을 이렇게 짧게 설정 한 것보다 -p

    String longLink = "https://k5xt4.app.goo.gl/?link=" + encodedLink;
    
    

    마지막으로 다음 코드를 사용하여longLink단축을 요청했습니다-

    Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
                    .setLongLink(Uri.parse(longLink))
                    .buildShortDynamicLink()
                    .addOnCompleteListener(new OnCompleteListener<ShortDynamicLink>() {
                        @Override
                        public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                            if (task.isSuccessful()) {
                                // Short link created
                                Uri shortLink = task.getResult().getShortLink();
                                Uri flowchartLink = task.getResult().getPreviewLink();
                            } else {
                                // Error
                                // ...
                            }
                        }
                    });
    
    

  • 답변 # 2

    여러 매개 변수가있는 링크를 보내려면 인코딩하는 것이 적절하지만 문제를 일으키는 부분 만이 아니라 전체 링크를 인코딩해야합니다.

    또한 링크에는 URL 체계 (이 경우 http 또는 https)가 포함되어야합니다.

    String evaluationLink = "http://howdoyoudo.co.il?id=123&evaluator=7";
    String encodedLink = URLEncoder.encode(evaluationLink, "UTF-8");
    
    

    참조 : Firebase를 사용하여 동적 링크에서 추가 매개 변수를 얻는 방법

  • 이전 git tfs - TFS 프로젝트를 하드 드라이브에 보관
  • 다음 android - Duktape를 구성하는 방법?