技术标签: Android 跳转微信小程序 app app跳转微信小程序 跳转微信小程序打不开微信
微信官方文档:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/Android_Development_example.html
第一步需要获取 appID 小程序原始ID
在微信开放平台创建应用时填写应用签名的时候,填写的是md5值 并去掉“:”号全部改为小写
第二步集成微信的包
-
- //版本号可以修改为最新的
- api 'com.tencent.mm.opensdk:wechat-sdk-<a href="http://www.gaodaima.com/tag/android" title="查看更多关于android的文章" target="_blank">android</a>-with-mta:5.3.1'
第三步 需要在自己的报名下新建一个wxapi包,在新建一个WXEntryActivity类
-
- public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {
- private static String TAG = "MicroMsg.WXEntryActivity";
- private IWXAPI api;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- try {
- Intent intent = getIntent();
- api.handleIntent(intent, this);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- protected void onNewIntent(Intent intent) {
- super.onNewIntent(intent);
- setIntent(intent);
- api.handleIntent(intent, this);
- }
- @Override
- public void onResp(BaseResp baseResp) {
- if (baseResp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
- WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) baseResp;
- String extraData = launchMiniProResp.extMsg; //对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性
- }
- }
- }
点击调转小程序
-
- if (!isWeixinAvilible(getActivity())){
- showToast("请先安装微信");
- return;
- }
- //这个是打开微信 防止华为手机 微信没有设置浮动权限 打不开小程序
- Intent lan = getActivity().getPackageManager().getLaunchIntentForPackage("com.tencent.mm");
- Intent t2 = new Intent(Intent.ACTION_MAIN);
- t2.addCategory(Intent.CATEGORY_LAUNCHER);
- t2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- t2.setComponent(lan.getComponent());
- startActivity(t2);
- // 下面是跳转小程序
- String appId = ""; // 填应用AppId
- IWXAPI api = WXAPIFactory.createWXAPI(getContext(), appId);
- WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
- req.userName = ""; // 填小程序原始id
- req.path = ""; //拉起小程序页面的可带参路径,不填默认拉起小程序首页
- req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
- // req.miniprogramType =WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_PREVIEW;
- api.sendReq(req);