android 從app跳轉到微信小程序和微信沒有設置浮動權限 打不開小程序

微信的官方文檔

第一步需要獲取 appID 小程序原始ID

在微信開放平臺創建應用時填寫應用簽名的時候,填寫的是md5值 並去掉“:”號全部改爲小寫

第二步集成微信的包

//版本號可以修改爲最新的
 api 'com.tencent.mm.opensdk:wechat-sdk-android-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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章