Android商城分享从网页携带参数跳转至APP并跳转至详情页

逻辑如下:App分享携带商品的ID分享为网页详情,生成链接,他人从微信或者QQ得到链接后进入浏览器拉起APP并主动跳转至详情

实现过程如下:
1.在AndroidManifest的activity中添加如下:

例如DetailActivity

    <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:host="splash"
                    android:scheme="zhu" />
            </intent-filter>
Activity 的启动模式要更改为 singleTask

我们在接收到后 接受的是如下数据
dat=zhu://splash?uid=&gid=6152 cmp=com.knight.jinlichi/.ui.DetailActivity
2.在DetailActivity中的oncreate中加入如下则可获取数据
我们这里要获取gid与uid,可以看到uid为空(因为分享的时候没有)

Intent intent=getIntent();
 String scheme = intent.getScheme();
            Uri uri = intent.getData();
            Log.d(TAG, " scheme" + scheme);
            if (uri != null) {
                String dataString = intent.getDataString();
                Log.d(TAG, dataString + "");
             String   gid = uri.getQueryParameter("gid");
                String uid = uri.getQueryParameter("uid");
                }
                

通过上面的方法获取到参数就能实现想要的操作了

遇到的问题
1.商品是取到了,但是返回时直接退出app了,这里应该是在首页获得这个参数然后通过 Intent跳转携带参数过来,这样退出就解决了问题
2.此方法只能是App在未打开状态下才能拉起,在已打开的时候则不能进行跳转

解决方法如下

在Activity中加入

 @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
     Intent intent=getIntent();
 		String scheme = intent.getScheme();
            Uri uri = intent.getData();
            Log.d(TAG, " scheme" + scheme);
            if (uri != null) {
                String dataString = intent.getDataString();
                Log.d(TAG, dataString + "");
             String   gid = uri.getQueryParameter("gid");
                String uid = uri.getQueryParameter("uid");
                }

    }

完结.end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值