2015-02-24 68 views
0

我正在使用此功能,用户可以将图像共享到Facebook和Twitter等社交媒体。 该图像是某个屏幕的屏幕截图。当截图被拍摄时,我检查了画廊,图像位于“Device/photos/image1.jpeg”。bb10级联共享图像到社交媒体

现在我想分享该图像社交媒体。 这里是我的代码:

void invoke(QString target){ 
    InvokeManager invokeManager; 
    InvokeRequest request; 

    request.setAction("bb.action.SHARE"); 
// target == "Facebook" or "Twitter" 
    request.setTarget(target); 

// request.setMimeType("text/plain"); 
    request.setMimeType("image/jpeg"); 

// request.setUri(QUrl("Device/photos/image1.jpeg")); 
    request.setUri(QUrl::fromLocalFile("Device/photos/image1.jpeg")); 

    InvokeTargetReply *targetReply = invokeManager.invoke(request); 
    invokeManager.setParent(this); 

    if (targetReply == NULL) { 
      qDebug() << "InvokeTargetReply is NULL: targetReply = " ; 
     } else { 
      qDebug() << "reply != NULL "; 
//   qDebug() << "targetReply : " << targetReply->setParent(this); 
      qDebug() << "request action : " << request.action(); 
      qDebug() << "request target : " << request.target(); 
      qDebug() << "request uri : " << request.uri(); 
      qDebug() << "request mime : " << request.mimeType(); 

      targetReply->setParent(this); 
     } 
} 

当这个函数被调用,什么都没有发生。我在控制台上看到它打印出“reply!= NULL”,这意味着invokeTargetReply已回复我的请求。但没有发生。

我尝试将mimeType更改为“text/Plain”,所以它只是将纯文本分享给Facebook。它工作正常。 我猜错误与文件的URI有关。我不知道如何正确的setUri方法。 任何人都可以帮助我吗? 最小的帮助将非常感激。

感谢 问候,

瑜伽

回答

0

我能够通过改变由setUri这个解决它:

QString workingDir = QDir::currentPath(); 
request.setUri(QUrl("file://" + workingDir + "/shared/photos/image1.jpeg")); 

谢谢!