iOSアプリを開発しており、
LINE(Twitter)シェア機能を実装したいと思っています。
画像をシェアすることには成功したのですが、
動画をシェアするとなると、勝手が違うようで、方法が分からず質問させて頂きました。
どなたかご助力頂けますと幸いです。
##試したこと
画像シェアで使用したもの
anchan828/social-connector
画像シェアで用いたコード(SocialConnector)を修正すればいけるのではと考えました。
↓
わからないなりにmmファイルを解読してみることにしました。
↓
socialConnector.mmの、画像のurlを取得している箇所を、動画のurlに直せば、いけるのではと思ったのですが、
できませんでした
↓
UIImageクラス
が、画像にしか適してないからなのでは。
↓
動画に適したクラスを探し、実装できないか模索しているところです
##環境
※Unityを使用して作っています。
・Unity2019.1.8f
・Xcode10.1
・iPadPro(iOS12.2)
##補足
↓録画機能については、VideoCreator.frameworkというものを用いて実装しました。
iOSでUnityの録画をする
##追記
SocialConnector.mm
を以下のように書き換えてみました。(Objective-Cは初めてなので悪しからず…)
(ひとまずエラーはでていません。)
↓
一旦画像のurlのままで試してみたのですが、
下図のように「その他」しかでない状態となってしまいました。
↓
UIImageでなくなったためか、NSMutableArrayをつかっているが間違いなのかと考えているところです。
// // SocialConnector.mm // Unity-iPhone // // Created by Ando Keigo on 2012/12/08. // // #if UNITY_VERSION <= 434 #import "iPhone_View.h" #endif extern "C" { void SocialConnector_Share(const char *text, const char *url, const char *textureURL) { NSString *_text = [NSString stringWithUTF8String:text ? text : ""]; NSString *_url = [NSString stringWithUTF8String:url ? url : ""]; NSString *_textureURL = [NSString stringWithUTF8String:textureURL ? textureURL : ""]; NSString *mytext; mytext = _text; NSURL *myurl; myurl = [NSURL fileURLWithPath:_textureURL]; NSMutableArray *actItems = nil; [actItems addObject:mytext]; [actItems addObject:myurl]; UIActivityViewController *activityView = [[[UIActivityViewController alloc] initWithActivityItems:actItems applicationActivities: nil] autorelease]; if(floorf(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_7_1) activityView.popoverPresentationController.sourceView = UnityGetGLViewController().view; [UnityGetGLViewController() presentViewController:activityView animated:YES completion:nil]; } }
##追記②
再度、書き換えてみたところ、画像のurlでの取得には成功しました。
これから動画urlでできるか試してみます。
// // SocialConnector.mm // Unity-iPhone // // Created by Ando Keigo on 2012/12/08. // // #if UNITY_VERSION <= 434 #import "iPhone_View.h" #endif extern "C" { void SocialConnector_Share(const char *text, const char *url, const char *textureURL) { NSString *_text = [NSString stringWithUTF8String:text ? text : ""]; NSString *_url = [NSString stringWithUTF8String:url ? url : ""]; NSString *_textureURL = [NSString stringWithUTF8String:textureURL ? textureURL : ""]; NSString *myText; myText = _text; NSURL *myURL = [NSURL URLWithString:_url]; NSURL *myTextureURL; myTextureURL = [NSURL fileURLWithPath:_textureURL]; NSArray *actItems = @[myText, myURL, myTextureURL]; UIActivityViewController *activityView = [[[UIActivityViewController alloc] initWithActivityItems:actItems applicationActivities: nil] autorelease]; if(floorf(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_7_1) activityView.popoverPresentationController.sourceView = UnityGetGLViewController().view; [UnityGetGLViewController() presentViewController:activityView animated:YES completion:nil]; } }
あなたの回答
tips
プレビュー