2026-02-13 14:34:15 +08:00
|
|
|
|
#include "SelectShareScene.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "cocos2d.h"
|
|
|
|
|
|
#include "ui/CocosGUI.h"
|
|
|
|
|
|
#include "cocostudio/CocoStudio.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
|
#include "YSAudioEngine.h"
|
|
|
|
|
|
#include "MissionWeiXin.h"
|
|
|
|
|
|
#include "JniFun.h"
|
|
|
|
|
|
|
|
|
|
|
|
SINGLETON_STORAGE(SelectShareScene);
|
|
|
|
|
|
|
|
|
|
|
|
SelectShareScene::SelectShareScene()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_pRootNode = nullptr;
|
|
|
|
|
|
m_strShareType = "";
|
|
|
|
|
|
m_isShareImage = true;
|
|
|
|
|
|
|
|
|
|
|
|
init();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
SelectShareScene::~SelectShareScene()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_pRootNode = nullptr;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool SelectShareScene::init()
|
|
|
|
|
|
{
|
|
|
|
|
|
auto rootPanel = CSLoader::createNode("Platform/SelectShareScene.csb");
|
|
|
|
|
|
CC_ASSERT(rootPanel != nullptr);
|
|
|
|
|
|
this->addChild(rootPanel);
|
|
|
|
|
|
|
|
|
|
|
|
m_pRootNode = (Layout*)rootPanel->getChildByName("Panelbg");
|
|
|
|
|
|
CC_ASSERT(m_pRootNode != nullptr);
|
|
|
|
|
|
|
|
|
|
|
|
m_pRootNode->addClickEventListener([this](Ref*){
|
|
|
|
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|
|
|
|
|
this->removeFromParent();
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
ImageView* imgSharebg = (ImageView*)m_pRootNode->getChildByName("Imagebg");
|
|
|
|
|
|
ASSERT(imgSharebg != nullptr);
|
|
|
|
|
|
|
|
|
|
|
|
m_btnWinxin = (Button*)imgSharebg->getChildByName("btnWeiXin");
|
|
|
|
|
|
m_btnXL = (Button*)imgSharebg->getChildByName("btnXianLiao");
|
|
|
|
|
|
|
|
|
|
|
|
ASSERT(m_btnWinxin != nullptr);
|
|
|
|
|
|
m_btnWinxin->addClickEventListener([this](Ref*){
|
|
|
|
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|
|
|
|
|
if (m_pRootNode != nullptr)
|
|
|
|
|
|
{
|
|
|
|
|
|
this->setVisible(false);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_isShareImage)
|
|
|
|
|
|
{
|
|
|
|
|
|
CallFunc* tmpBack = CallFunc::create([this]{
|
|
|
|
|
|
std::function<void(bool, const std::string&)> afterCaptured = [this](bool bSucceed, std::string name)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (bSucceed)
|
|
|
|
|
|
{
|
|
|
|
|
|
MissionWeiXin::Instance().shareScreenWeiXin(name);
|
|
|
|
|
|
|
|
|
|
|
|
#if CC_TARGET_PLATFORM == CC_PLATFORM_IOS
|
2026-03-02 17:32:23 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD>ļ<EFBFBD>;
|
2026-02-13 14:34:15 +08:00
|
|
|
|
FileUtils::getInstance()->removeFile(name);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2026-03-02 17:32:23 +08:00
|
|
|
|
//// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>SD<53><44>·<EFBFBD><C2B7>;
|
2026-02-13 14:34:15 +08:00
|
|
|
|
//std::string strScreenShot = JniFun::getInnerSDCardPath() + "screenshot.jpg";
|
|
|
|
|
|
//cocos2d::utils::captureScreen(afterCaptured, strScreenShot);
|
|
|
|
|
|
|
2026-03-02 17:32:23 +08:00
|
|
|
|
cocos2d::utils::captureScreen(afterCaptured, "screenshot.png");
|
2026-02-13 14:34:15 +08:00
|
|
|
|
|
|
|
|
|
|
this->removeFromParent();
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
m_btnWinxin->runAction(Sequence::create(DelayTime::create(0.2f), tmpBack, nullptr));
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2026-03-01 13:48:24 +08:00
|
|
|
|
MissionWeiXin::Instance().shareUrlWeiXin(m_ShareItem.strkUrl, m_ShareItem.strkTitle, m_ShareItem.strkDesc);
|
2026-02-13 14:34:15 +08:00
|
|
|
|
this->removeFromParent();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
ASSERT(m_btnXL != nullptr);
|
|
|
|
|
|
m_btnXL->addClickEventListener([this](Ref*){
|
|
|
|
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|
|
|
|
|
if (m_pRootNode != nullptr)
|
|
|
|
|
|
{
|
2026-03-02 17:32:23 +08:00
|
|
|
|
// ֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD>;
|
2026-02-13 14:34:15 +08:00
|
|
|
|
m_pRootNode->setVisible(false);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_isShareImage)
|
|
|
|
|
|
{
|
|
|
|
|
|
CallFunc* tmpBack = CallFunc::create([this]{
|
|
|
|
|
|
std::function<void(bool, const std::string&)> afterCaptured = [this](bool bSucceed, std::string name)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (bSucceed)
|
|
|
|
|
|
{
|
|
|
|
|
|
MissionWeiXin::Instance().shareScreenXL(name);
|
|
|
|
|
|
|
|
|
|
|
|
#if CC_TARGET_PLATFORM == CC_PLATFORM_IOS
|
2026-03-02 17:32:23 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD>ļ<EFBFBD>;
|
2026-02-13 14:34:15 +08:00
|
|
|
|
FileUtils::getInstance()->removeFile(name);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2026-03-02 17:32:23 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>SD<53><44>·<EFBFBD><C2B7>;
|
2026-02-13 14:34:15 +08:00
|
|
|
|
//std::string strScreenShot = JniFun::getInnerSDCardPath() + "screenshot.jpg";
|
|
|
|
|
|
//cocos2d::utils::captureScreen(afterCaptured, strScreenShot);
|
|
|
|
|
|
|
2026-03-02 17:32:23 +08:00
|
|
|
|
cocos2d::utils::captureScreen(afterCaptured, "screenshot.png");
|
2026-02-13 14:34:15 +08:00
|
|
|
|
|
|
|
|
|
|
this->removeFromParent();
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
m_btnXL->runAction(Sequence::create(DelayTime::create(0.2f), tmpBack, nullptr));
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2026-03-01 13:48:24 +08:00
|
|
|
|
MissionWeiXin::Instance().shareUrlXL(m_ShareItem.strkUrl, m_ShareItem.strkTitle, m_ShareItem.strkDesc);
|
2026-02-13 14:34:15 +08:00
|
|
|
|
this->removeFromParent();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SelectShareScene::onEnter()
|
|
|
|
|
|
{
|
|
|
|
|
|
Node::onEnter();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SelectShareScene::onEnterTransitionDidFinish()
|
|
|
|
|
|
{
|
|
|
|
|
|
Node::onEnterTransitionDidFinish();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SelectShareScene::onExit()
|
|
|
|
|
|
{
|
|
|
|
|
|
Node::onExit();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SelectShareScene::shareImage()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_pRootNode == nullptr) return;
|
|
|
|
|
|
|
2026-03-02 17:32:23 +08:00
|
|
|
|
//<2F><><EFBFBD>û<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>볡<EFBFBD><EBB3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵱ǰ<EBB5B1><C7B0><EFBFBD>г<EFBFBD><D0B3><EFBFBD>
|
2026-02-13 14:34:15 +08:00
|
|
|
|
if (getParent() == nullptr)
|
|
|
|
|
|
{
|
|
|
|
|
|
Scene* pScene = Director::getInstance()->getRunningScene();
|
|
|
|
|
|
pScene->addChild(this, 999);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isShareImage = true;
|
|
|
|
|
|
|
|
|
|
|
|
m_pRootNode->setVisible(true);
|
|
|
|
|
|
this->setVisible(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SelectShareScene::HideDlg()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_pRootNode != nullptr)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_pRootNode->setVisible(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SelectShareScene::shareRoomInfo(std::string kUrl, std::string kTitle, std::string kDesc, int nShareType)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_pRootNode == nullptr) return;
|
|
|
|
|
|
|
2026-03-02 17:32:23 +08:00
|
|
|
|
//<2F><><EFBFBD>û<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>볡<EFBFBD><EBB3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵱ǰ<EBB5B1><C7B0><EFBFBD>г<EFBFBD><D0B3><EFBFBD>
|
2026-02-13 14:34:15 +08:00
|
|
|
|
if (getParent() == nullptr)
|
|
|
|
|
|
{
|
|
|
|
|
|
Scene* pScene = Director::getInstance()->getRunningScene();
|
|
|
|
|
|
pScene->addChild(this, 999);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isShareImage = false;
|
|
|
|
|
|
|
|
|
|
|
|
m_ShareItem.strkUrl = kUrl;
|
|
|
|
|
|
m_ShareItem.strkTitle = kTitle;
|
|
|
|
|
|
m_ShareItem.strkDesc = kDesc;
|
|
|
|
|
|
m_ShareItem.nShareType = nShareType;
|
|
|
|
|
|
|
|
|
|
|
|
m_pRootNode->setVisible(true);
|
|
|
|
|
|
this->setVisible(true);
|
|
|
|
|
|
}
|