美文网首页
将aliexpress的商品分享到自己的APP中以及缓存问题

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

作者: s酸菜 | 来源:发表于2017-12-05 09:46 被阅读0次

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

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

    • 第一步:在自己的App中对应的activity在AndroidManifest.xml中配置属性。配置完成以后就能在分享中看到自己的App。
        <activity
                android:name=".GoodsDetailActivity"
                android:screenOrientation="portrait">
                <!-- 定义一个启动的过滤器 -->
                <intent-filter>
                    <!--  配置action为发送的类型 -->
                    <action android:name="android.intent.action.SEND"/> 
                    <category android:name="android.intent.category.DEFAULT"/>
                    <!--  定义媒体类型为文本类型 -->
                    <data android:mimeType="text/plain"/>
                </intent-filter>
        </activity>
    
    • 第二步:在对应的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"属性,然后再次测试。
        <activity
                android:name=".GoodsDetailActivity"
                android:noHistory="true"
                android:screenOrientation="portrait">
                <!-- 定义一个启动的过滤器 -->
                <intent-filter>
                    <!--  配置action为发送的类型 -->
                    <action android:name="android.intent.action.SEND"/> 
                    <category android:name="android.intent.category.DEFAULT"/>
                    <!--  定义媒体类型为文本类型 -->
                    <data android:mimeType="text/plain"/>
                </intent-filter>
        </activity>
    
    添加了nohistroy属性的情况.gif

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

    最后附上demo地址:ShareDemo

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/fsdqixtx.html