在我的第一个目标平台是Android的基于Quick的快速应用程序中,我需要让用户共享图像 . 我的意思是Android上的一般分享行动,不仅限于任何特定的社交网络:
我确实找到了一些关于在Qt上分享FB和Twitter的线索,但他们直接使用Facebook / Twitter API,这不是我想要的 .
从我到目前为止发现,似乎没有跨平台的方法来做到这一点,我的应用程序可能必须包含一些Java代码 . 如果这是正确的,那么目前在Android上编写特定于平台的代码的正确方法是什么?喜欢this?
另一个想法是,可以通过在WebView中加载的网站中运行的Javascript来调用共享操作 . 由于网络应用程序具有共享功能,因此这应该是可能的,可能更具跨平台性 . 这看起来合情合理吗?
2 回答
就我而言 . 最好的,实际上唯一可行的方法是使用Jni . 乍一看似乎很混乱,但如果你有一点java经验,肯定你可以做到 .
为了将文本发送到像facebook这样的另一个应用程序,我们应该使用Intents . 所以我们可以简单地在一个简单的Java文件中完成这项工作,并使用Jni从c端调用它 . 这是SendIntent.java文件的内容 . 该类具有静态成员函数,该函数提供上下文并启动Intent . 然后它将文本数据发送到新活动 .
所以在c方面我们只需要启动一个android活动并将它传递给这个类:这是c代码:
如果您担心跨平台问题,可以使用预处理器指令编写平台相关代码,这是c编程中非常常见的解决方案 .
我要提到的最后一件事是将这些代码行添加到.pro文件中 . 所以qt也能找到java资源:
在这种情况下,android-sources是我放置所有java源的目录 .
我希望这篇文章能帮到你:http://blog.lasconic.com/share-on-ios-and-android-using-qml/