为了梦想

小程序开放能力-跳转app

2018-08-12  本文已影响579人  米奇小林

1.必要条件:app注册的微信公众号于小程序保持一致

2.场景值:

#1.App主动发起小程序卡片分享到微信,微信点击打开小程序,这时的小程序可以打开App.
#2.App主动发起打开小程序,这时的小程序可以打开App

满足以上条件,就可以实现相互跳转了。看看代码吧。

1.小程序端:

<button open-type="launchApp" app-parameter="wechat" binderror="launchApp">打开APP</button>
Page({ 
    launchApp: function(e) { 
        console.log(e.detail.errMsg) 
    } 
}) 

2.android 端(新建的activity必须)


public class WXEntryActivity extends Activity implements IWXAPIEventHandler{
// 小程序发送消息到app
    @Override
    public void onReq(BaseReq arg0) {
        switch (arg0.getType()) {
            case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
                //// TODO: 2018/6/20
                break;
            case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
                // 小程序 跳转app
                openApp((ShowMessageFromWX.Req) arg0);

                break;
            default:
                break;
        }
    }

    /**
     * 小程序跳转app
     */
    public void openApp(ShowMessageFromWX.Req showReq){
        WXMediaMessage wxMsg = showReq.message;
        WXAppExtendObject obj = (WXAppExtendObject) wxMsg.mediaObject;
        /*wxMsg.description);
        obj.extInfo

        obj.filePath*/
        // TODO: 2018/7/23 obj.extinfo  获取的 才是 小程序传递过来的信息
               /*可以将小程序端的参数以json字符串的形式传递,app端做相应解析*/
/*
        String msg = "小程序信息:\n"+"extinfo:"+obj.extInfo+"\nfilePath:"+obj.filePath+"\nfileData:"+obj.fileData;
        ToastUtils.show(msg);*/


        startActivity(new Intent(this, AppstartActivtiy.class));
        finish();

    }
    
    @Override
    public void onResp(BaseResp resp) {
           ..............
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
//      finish();
//      setContentView(R.layout.activity_wx);
//      handler.sendEmptyMessageDelayed(0x00, 500);
        ((MainApplication)getApplicationContext()).wxapi = (WXAPIFactory.createWXAPI(this, UserInfo.APP_ID,true));
        ((MainApplication)getApplicationContext()).wxapi.registerApp(UserInfo.APP_ID);
        ((MainApplication)getApplicationContext()).wxapi.handleIntent(getIntent(), this);
    }
    
    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    }
    
    @Override
    protected void onNewIntent(Intent intent) {
        // TODO Auto-generated method stub
        super.onNewIntent(intent);
    }
}

上一篇 下一篇

猜你喜欢

热点阅读