Как загрузить скриншот на Facebook в cocos2d-x 2.x на iOS?

#ios #cocos2d-x

#iOS #cocos2d-x

Вопрос:

Я искал, но не нашел решения для загрузки скриншота на Facebook на iOS

В cocos2d-x, gamescene.cpp :

 void GameScene::takeScreenshot()
{
    SoundManager::getInstance()->playSound("sound2.mp3");
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    CCRenderTexture* texture = CCRenderTexture::create((int)size.width, (int)size.height);
    texture->setPosition(ccp(size.width/2, size.height/2));
    texture->begin();
    CCDirector::sharedDirector()->getRunningScene()->visit();
    texture->end();
    texture->saveToFile("screenshot.png", kCCImageFormatPNG);

    Link::postToFacebook();

}
  

по ссылке: функция postToFacebook :

 if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

        SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

        [controller setInitialText:@"First post from my iPhone app"];
        [controller addURL:[NSURL URLWithString:@"http://www.jinibot.com"]];
//        [controller addImage:image];
        [controller addImage:[UIImage imageNamed:@"screenshot.png"]];


        [controller dismissViewControllerAnimated:YES completion:nil];

        //add as many images as you want
//        [controller presentViewController:mail animated:YES completion:nil];
    }
  

но это не работает.

Помогите мне, пожалуйста. Спасибо!

Комментарии:

1. Сначала посмотрите, дает ли ваш метод take screen shot снимок экрана или нет?? Если это дает вам снимок экрана, то это проблема где-то в вашем методе обмена fb.

2. Это дало мне скриншот. И я не знаю, как получить этот скриншот и поделиться им в FB.

3. Установите возвращаемый тип метода скриншота как UIImage. И пока вы делитесь изображением с помощью FB, вызывайте этот метод. Не стесняйтесь обращаться за помощью, если вам нужна дополнительная помощь по этому поводу.

Ответ №1:

Проблема с вашим кодом

 [controller addImage:[UIImage imageNamed:@"screenshot.png"]];
  

Этот метод

 texture->saveToFile("screenshot.png", kCCImageFormatPNG);
  

сохраняет изображение в каталоге документов, но здесь вы используете изображение как изображение пакета, которое невозможно получить.
Итак, создайте UIImage объект из NSDocuments пути к каталогу.
Код будет работать нормально. 🙂