###前提・実現したいこと
SFSafariViewControllerを使ったアプリを作っています。
任意のサーバにformタグで「ファイルを選択」ができるHTMLを用意しています。
そのHTMLをSFSafariViewControllerで開き、「写真またはビデオを撮る」を押すことによって、カメラで撮影した写真を添付したいと思っています。
###発生している問題・エラーメッセージ
しかし、そのような操作を行うと、カメラの映像が映らないカメラアプリの画面が表示されるだけでした。
この現象は、アプリのInfo.plistに「Privacy- Camera Usage Description」の認可がされていないときに起こるらしいのですが、設定画面で確認したところ、認可されていることが確認できました。
###該当のソースコード
HTML側は、「ファイルを選択」が押したいだけなので、formタグのみの単純なものになっています。特にサーバ側のプログラムなどは用意していません。
html
1<html> 2<head> 3 <meta name="viewport" content="initial-scale=1.0" /> 4</head> 5<body> 6 <form action="cgi-bin/abc.cgi" method="post" enctype="multipart/form-data"> 7 <input type="file" name="datafile"> 8 <input type="submit" value="送信する"> 9 </form> 10</body> 11</html>
iOS側はObjective-Cで開発をしていますが、SFSafariViewControllerを表示しているところのみを抜き出します。
細かい部分は省略しています。
これ単体でサンプルアプリを作った場合はも同じ現象が発生しました。
objective
1#import "ViewController.h" 2 3@interface ViewController () 4@end 5 6@implementation ViewController 7// 8// ... 9// 10- (void)displaySafari { 11 SFSafariViewController *safariVC = [[SFSafariViewController alloc]initWithURL:[NSURL URLWithString:@"{サンプルのHTMLを表示するURL}"] entersReaderIfAvailable:NO]; 12 [self presentViewController:safariVC animated:NO completion:nil]; 13} 14 15@end
###試したこと
- SFSafariViewControllerを単純に表示するだけのアプリを作成し、同WiFiネットワーク上のPCにローカルサーバを起動し、そこに上記HTMLを配置し、アクセスするということを試してみました。
###補足情報(言語/FW/ツール等のバージョンなど)
- Xcode8.3.2で開発
- iPhone6Plus(10.3.2)、iPad Mini(9.3.5)で同様の現象が発生
何かご存知の方がいらっしゃいましたら、ご教授ください。
あなたの回答
tips
プレビュー