微信小程序 - 打开APP

接上一篇文章 --- APP分享小程序到微信(cordova-plugin-wechat)

一、官方小程序打开APP使用方法

小程序端

需要将 button 组件 open-type 的值设置为 launchApp。如果需要在打开 APP 时向 APP 传递参数,可以设置 app-parameter 为要传递的参数。通过 binderror 可以监听打开 APP 的错误事件。

app 端

APP 需要接入 OpenSDK。 文档请参考 iOS / Android

Android 第三方 app 需要处理 ShowMessageFromWX.req 的微信回调,iOS 则需要将 appId 添加到第三方 app 工程所属的 plist 文件 URL types 字段。 app-parameter 的获取方法,请参考 Android SDKSample 中 WXEntryActivity 中的 onResp 方法以及 iOS SDKSample 中 WXApiDelegate 中的 onResp 方法。

详见:小程序打开APP官方说明

二、测试小程序打开APP

小程序端对应界面修改

wxml:


js:

Page({
  launchAppError (e) {
    console.log(e.detail.errMsg)
  }
})

如果APP进程在,可以唤起APP,如果APP kill掉进程,唤不起

1、修改res/values/strings.xml文件:


    // 添加
    
    

2、修改AndroidManifest.xml文件:


   
      
      
   



   
      
      
      
   

可以唤起APP,现在是要实现从小程序的分享卡片打开小程序后,要获得小程序传过来的参数

借鉴

// WXEntryActivity.java
@Override
 
public void onReq(BaseReq req) {
 
    if(req.getType() == ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX){
 
        ShowMessageFromWX.Req showReq = (ShowMessageFromWX.Req) req;
 
        WXMediaMessage wxMsg = showReq.message;
 
        WXAppExtendObject obj = (WXAppExtendObject) wxMsg.mediaObject;
 
        String extInfo = obj.extInfo;// 对应 小程序 app_paramter 参数
 
    }
 
}

IOS

- (void)onReq:(BaseReq *)req {
    // 需要判断类型
    LaunchFromWXReq *request = (LaunchFromWXReq *)req;
    ((LaunchFromWXReq*)req).message.messageExt
    // 对应 小程序 app_paramter 参数
}

- (void)onReq:(BaseReq *)req {
    WXMediaMessage *msg = req.message;
    //从微信启动App
    NSString *strMsg = [NSString stringWithFormat:@"openID: %@, messageExt:%@", req.openID, msg.messageExt];
    NSLog(@"%@", strMsg);
}

你可能感兴趣的:(微信小程序 - 打开APP)