我正在使用这个功能,用户可以在Facebook和Twitter等社交媒体上共享一张图片。这个图像是一些屏幕的截图。当截图被拍摄时,我在图片库上查看,图像被定位为“设备/照片/Image1.jpeg”。
现在我想和社交媒体分享这个形象。这是我的密码:
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的正确方法是什么。有人能帮我吗?如果能提供最小的帮助,我们将不胜感激。
谢谢你,
瑜伽
发布于 2015-02-24 07:08:41
通过将setUri更改为以下内容,我能够解决这个问题:
QString workingDir = QDir::currentPath();
request.setUri(QUrl("file://" + workingDir + "/shared/photos/image1.jpeg"));谢谢!
https://stackoverflow.com/questions/28689734
复制相似问题