我正在使用此功能,用户可以将图像分享到社交媒体,如Facebook和Twitter。 图像是某些屏幕的屏幕截图。拍摄截图时,我在画廊上查了一下,图像位于“Device / photos / 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的正确方法是什么。 谁能帮我 ? 非常感谢最小的帮助。
由于 的问候,
瑜伽
答案 0 :(得分:0)
我能够通过将setUri更改为此来解决它:
QString workingDir = QDir::currentPath();
request.setUri(QUrl("file://" + workingDir + "/shared/photos/image1.jpeg"));
谢谢!