微信支付来打赏,一直是个人开发者的心痛之地。
微信的很多Activity都是只能在它自己app的uid下启动,其他app调用不了,让用户主动截取二维码,然后扫描,实在是不明智之举,用户体验不太好。
一直在苦苦思索怎么有更简单的方法。
刚刚看到黑域使用的一种办法,比较具有可行性,就借鉴了过来[w再见][w再见]
原理是利用微信扫码快捷方式(我怎么就想不到)
首先利用Dialog提示用户
二维码从哪里来呢? 我的解决方案是,放到服务器上,来获取并保存下来
支付方式按钮
然后提用户打开微信的扫一扫
通过快捷方式的方式进入扫一扫
保存完了要发个广播通知一下,要不然微信、图库上面找不到那张二维码
发广播的代码
然后就能愉快便捷地开启捐赠之旅了。[w调皮][w调皮]
附源代码:
private void gotoWeChat() { Intent intent = new Intent("com.tencent.mm.action.BIZSHORTCUT"); intent.setPackage("com.tencent.mm"); intent.putExtra("LauncherUI.From.Scaner.Shortcut", true); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); try { startActivity(intent); }catch (ActivityNotFoundException e){ Toast.makeText(this, "你好像没有安装微信", Toast.LENGTH_SHORT).show(); } }private void sendPictureStoredBroadcast(File file) { Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); Uri uri = Uri.fromFile(file); intent.setData(uri); sendBroadcast(intent); }
登录 | 立即注册