Таким образом, для устройств Android существует функция намерения общего доступа по умолчанию, которую вы вызываете, которая будет перечислять все приложения, загруженные на устройство, с помощью которых можно обмениваться контентом. Как бы я сделал это с помощью robovm, вот снимок экрана того, чего я пытаюсь достичь. Кроме того, хочу отметить, что в конечном итоге я хочу сделать снимок экрана их устройства и опубликовать его на любом сайте социальной сети, который выберет пользователь. Любая помощь будет принята с благодарностью: D
Как добавить намерение поделиться с помощью robovm (libgdx)?
Ответы (1)
Для пользователей iOS:
RoboVM устарел в пользу RoboPods. Итак, RoboVM больше нет, что теперь?
https://github.com/robovm/robovm-robopods/tree/master
Для обмена text
с помощью roboVM вы можете установить класс UIAvtivityViewController
NSString textShare = new NSString("This is the text to share");
NSArray texttoshare = new NSArray(textShare);
UIActivityViewController share = new UIActivityViewController(texttoshare,null);
presentViewController(share, true, null);
Чтобы поделиться text, image and app
, вы можете сделать следующий код:
NSURL imgUrl = new NSURL(EXTERNAL_IMG_URL);
NSData data = NSData.read(imgUrl);
UIImage image = new UIImage(data);
NSString appStoreUrl = new NSString(APP_STORE_URL);
NSString googleUrl = new NSString(GOOGLE_PLAY_URL);
NSString text = new NSString(TEXT_TO_SHARE);
NSArray<NSObject> texttoshare = new NSArray<NSObject>(text, image, appStoreUrl, googleUrl);
UIActivityViewController share = new UIActivityViewController(
texttoshare, null);
if (UIDevice.getCurrentDevice().getUserInterfaceIdiom() == UIUserInterfaceIdiom.Phone) {
//iPhone
iosApplication.getUIViewController().presentViewController(
share, true, null);
} else {
//iPad
UIPopoverController popover = new UIPopoverController(share);
UIView view = iosApplication.getUIViewController().getView();
CGRect rect = new CGRect(
view.getFrame().getWidth() / 2,
view.getFrame().getHeight() / 4,
0,
0);
popover.presentFromRectInView( rect, view, UIPopoverArrowDirection.Any, true);
}
Следующий код отправляет анимированное .gif
через Mail и Messenger, однако Twitter предоставляет только статическое изображение.
public void shareGif(String path)
{
NSURL url = new NSURL(new File(path));
NSArray<NSObject> imageArray = new NSArray<NSObject>(image);
UIActivityViewController share = new UIActivityViewController(imageArray,null);
((IOSApplication)Gdx.app).getUIViewController().presentViewController(share, true, null);
}
Для универсального общего доступа в iOS с text, link and image
код приведен ниже:
@Override
public void share() {
NSArray<NSObject> items = new NSArray<>(
new NSString("Hey! Check out this mad search engine I use"),
new NSURL("https://www.google.com"),
new UIImage(Gdx.files.external("image.png").file())
);
UIActivityViewController uiActivityViewController = new UIActivityViewController(items, null);
((IOSApplication) Gdx.app).getUIViewController().presentViewController(uiActivityViewController, true, null);
}
Для пользователей Android: Предоставление доступа к контенту с намерениями
В нем говорится, что RoboVM предназначен только для iOS, так как же мы будем использовать его для Android с помощью LibGDX? roboVM с RoboPods используется для iOS, а сервисы Google Play — для Android. Разные устройства, разный код. Для Android после интеграции Android SDK в вашу среду IDE просто свяжите библиотеку сервисов Google Play с проектом Android.