我想使用Firebase动态链接在应用之间实现数据传输。 它通常可以正常工作。 但是有时发件人更改了参数值,但收件人却收到了先前的参数值。 在这种情况下,我从设备上删除了Google Play服务缓存。之后,我可以看到它再次起作用。
有人知道为什么吗?
例如:
发件人
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);
接收器
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);
}
});
正常工作。