将aliexpress的商品分享到自己的APP中以及缓存问题

前言:前几天一个朋友说遇到一个问题,从海外天猫分享商品到自己的App中,当自己的App已经启动的时候是没问题得,但是如果自己的App不启动,多次分享的商品都是第一个商品。为了解决这个问题,我就写了一个demo来测试。

现在有很多的应用都会将知名应用中的商品分享到自己的App,要实现这个功能我们应该做些什么呢?

  • 第一步:在自己的App中对应的activity在AndroidManifest.xml中配置属性。配置完成以后就能在分享中看到自己的App。
    
            
            
                
                 
                
                
                
            
    
  • 第二步:在对应的activity中通过意图接收数据。
Intent intent = getIntent();
if (intent != null) {
            String action = intent.getAction();
            String type = intent.getType();
            if (!TextUtils.isEmpty(action) && !TextUtils.isEmpty(type)) {
                if (action.equals(Intent.ACTION_SEND) && type.equals("text/plain")) {
                    String str = intent.getStringExtra(Intent.EXTRA_TEXT);
                    Log.e(TAG, "分享过来的内容:" + str);
                }
            }
        }

  • 第三步:开始测试
  • 效果图一:启动demo,打开aliexpress,分享商品详情到demo中。
demo已经启动的情况.gif

从图中最后可以看出,两次分享的内容不一样。表示分享成功,没有问题。

  • 效果图二:demo不启动,打开aliexpress,同样分享商品到自己的App中。
demo未启动的情况.gif

从效果图中可以看到,两次分享的内容一样。这里就出现了一个问题。首先排除aliexpress分享问题,从启动demo的结果可以确定。经过查询资料,了解到应该是由于缓存原因。

  • 效果图三:对当前activity的manifest中添加 android:noHistory="true"属性,然后再次测试。
    
            
            
                
                 
                
                
                
            
    
添加了nohistroy属性的情况.gif

从效果图可以看出,两次分享内容符合实际,不再重复。解决了在demo未启动的情况下分享出现重复问题。

最后附上demo地址:ShareDemo

你可能感兴趣的:(将aliexpress的商品分享到自己的APP中以及缓存问题)