Android APP拉起小程序、分享小程序、小程序打开APP

简介: Android APP拉起小程序、分享小程序、小程序打开APP

APP拉起小程序

private void launchMiniProgram(String path) {
        String appId = "你的appid"; // 填应用AppId
        IWXAPI api = WXAPIFactory.createWXAPI(PinDanActivity.this, appId);
        WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
        req.userName = "原始id"; // 填小程序原始id
        req.path = path;                  //拉起小程序页面的可带参路径,不填默认拉起小程序首页
        req.miniprogramType = WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_PREVIEW;// 可选打开 开发版,体验版和正式版
        api.sendReq(req);
    }

req.userName 参数是小程序原始id,不是小程序的appid,不然会提示跳转失败。

req.path 参数是小程序里面的页面路径,及json文件里面的路径,比如:/pages/index/index?id=1

req.miniprogramType 小程序的版本

回调WXEntryActivity

@Override
    public void onResp(BaseResp baseResp) {
        // baseresp.getType 1:第三方授权, 2:分享
        LogUtil.i("baseresp.getType = " + baseResp.getType());
        switch (baseResp.getType()) {
            case 1:
                break;
            case 2:
                break;
            case ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM:
                WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) baseResp;
                //获取参数
                String extraData = launchMiniProResp.extMsg; //对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性
                break;
        }
      }


APP分享小程序

private void shareMiniProgram(String url) {
        WXMiniProgramObject miniProgramObj = new WXMiniProgramObject();
        miniProgramObj.webpageUrl = url; // 兼容低版本的网页链接
        miniProgramObj.miniprogramType = WXMiniProgramObject.MINIPROGRAM_TYPE_PREVIEW;// 正式版:0,测试版:1,体验版:2
        miniProgramObj.userName = "原始id";     // 小程序原始id
        miniProgramObj.path = "/pages/home/home";        //小程序页面路径
        WXMediaMessage msg = new WXMediaMessage(miniProgramObj);
        msg.title ="分享的标题"; // 小程序消息title
        msg.description = "分享的描述";   // 小程序消息desc
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pindan);
        msg.thumbData = bmpToByteArray(bitmap, true);   // 小程序消息封面图片,小于128k
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("webpage");
        req.message = msg;
        req.scene = SendMessageToWX.Req.WXSceneSession;  // 目前支持会话
        api.sendReq(req);
    }


小程序打开APP

<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打开APP</button>

open-type=“launchApp” 开放能力

app-parameter=“wechat” 传参

binderror=“launchAppError” 失败回调

Page({
  launchAppError (e) {
    console.log(e.detail.errMsg)
  }
})
目录
相关文章
|
7天前
|
开发工具 Android开发
|
7天前
|
Android开发
将AAB(Android App Bundle)转换为APK
将AAB(Android App Bundle)转换为APK
16 1
|
7天前
|
开发工具 Android开发
上架Google Play报错:For new apps, Android App Bundles must be signed with an RSA key.
上架Google Play报错:For new apps, Android App Bundles must be signed with an RSA key.
18 1
|
8天前
|
Android开发
Cannot create android app from an archive...containing both DEX and Java-bytecode content
Cannot create android app from an archive...containing both DEX and Java-bytecode content
11 2
|
17天前
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
46 12
|
20天前
|
监控 Android开发 开发者
Android经典面试题之实战经验分享:如何简单实现App的前后台监听判断
本文介绍在Android中判断应用前后台状态的两种方法:`ActivityLifecycleCallbacks`和`ProcessLifecycleOwner`。前者提供精细控制,适用于需针对每个Activity处理的场景;后者简化前后台检测,适用于多数应用。两者各有优劣:`ActivityLifecycleCallbacks`更精确但复杂度高;`ProcessLifecycleOwner`更简便但可能在极端场景下略有差异。根据应用需求选择合适方法。
19 2
|
23天前
|
消息中间件 Android开发 开发者
🔍深度剖析Android内存泄漏,让你的App远离崩溃边缘,稳如老狗!🐶
【7月更文挑战第28天】在 Android 开发中,内存管理至关重要。内存泄漏可悄无声息地累积,最终导致应用崩溃或性能下滑。它通常由不正确地持有 Activity 或 Fragment 的引用引起。常见原因包括静态变量持有组件引用、非静态内部类误用、Handler 使用不当、资源未关闭及集合对象未清理。使用 Android Studio Profiler 和 LeakCanary 可检测泄漏,修复方法涉及使用弱引用、改用静态内部类、妥善管理 Handler 和及时释放资源。良好的内存管理是保证应用稳定性的基石。
43 4
|
23天前
|
XML 缓存 Android开发
🎯解锁Android性能优化秘籍!让你的App流畅如飞,用户爱不释手!🚀
【7月更文挑战第28天】在移动应用竞争中,性能是关键。掌握Android性能优化技巧对开发者至关重要。
24 2
|
7天前
|
小程序
uni-app——微信小程序设置全局分享
uni-app——微信小程序设置全局分享
23 0
|
18天前
|
Java Android开发 UED
安卓scheme_url调端:如果手机上多个app都注册了 http或者https 的 intent。 调端的时候,调起哪个app呢?
当多个Android应用注册了相同的URL Scheme(如http或https)时,系统会在尝试打开这类链接时展示一个选择对话框,让用户挑选偏好应用。若用户选择“始终”使用某个应用,则后续相同链接将直接由该应用处理,无需再次选择。本文以App A与App B为例,展示了如何在`AndroidManifest.xml`中配置对http与https的支持,并提供了从其他应用发起调用的示例代码。此外,还讨论了如何在系统设置中管理这些默认应用选择,以及建议开发者为避免冲突应注册更独特的Scheme。

热门文章

最新文章