微信支付来打赏,一直是个人开发者的心痛之地。
微信的很多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);
}
网友评论
intent.putExtra("LauncherUI.From.Scaner.Shortcut", true);
这两个是怎么来的啊?是什么意思啊? 我可以直接跳转到从相册选取二维码的页面吗?