课堂笔记
检查手机是否安装淘宝
- 通过能不能获取淘宝的包名判断,并且根据是否有淘宝设置 mTvCopyOrOpen 的文字
@BindView(R.id.ticket_copy_or_open_btn)
public TextView mTvCopyOrOpen;
private boolean hasTaoBaoApp = false;
@Override
protected void initPresenter() {
PackageManager pm = getPackageManager();
try {
PackageInfo packageInfo = pm.getPackageInfo("com.taobao.taobao", PackageManager.MATCH_UNINSTALLED_PACKAGES);
hasTaoBaoApp = packageInfo != null;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
hasTaoBaoApp = false;
}
mTvCopyOrOpen.setText(hasTaoBaoApp ? "打开淘宝领券" : "复制淘口令");
}
复制淘口令,跳转到淘宝应用
- 给 mTvCopyOrOpen 设置点击事件,首先复制淘口令,再根据是否有淘宝进行跳转或提示
@Override
protected void initEvent() {
mTvCopyOrOpen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 获取淘口令
String ticketCode = mCode.getText().toString().trim();
// 获得 ClipboardManager
ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
// 复制到粘贴板
ClipData clipData = ClipData.newPlainText("sob_taobao_ticket_code", ticketCode);
cm.setPrimaryClip(clipData);
if (hasTaoBaoApp) {
Intent taoBaoIntent = new Intent();
ComponentName componentName = new ComponentName("com.taobao.taobao", "com.taobao.tao.TBMainActivity");
taoBaoIntent.setComponent(componentName);
startActivity(taoBaoIntent);
} else {
ToastUtil.showToast("已经复制,粘贴分享,或打开淘宝");
}
}
});
}
- 这时我们手机有淘宝的话,就能跳转到淘宝商品详情,但未领券,因为我们用的 url 不对,进入 HomePagerFragment 修改,如果没有优惠券再进入详情界面
private void handleItemClick(HomePagerContent.DataBean item) {
String title = item.getTitle();
String url = item.getCoupon_click_url();
// 如果没有优惠券再进入详情界面
if (TextUtils.isEmpty(url)) {
url = item.getClick_url();
}
String cover = item.getPict_url();
ITicketPresenter ticketPresenter = PresenterManager.getInstance().getTicketPresenter();
ticketPresenter.getTicket(title,url,cover);
startActivity(new Intent(getContext(), TicketActivity.class));
}
视频链接