質問編集履歴
7
small modification
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
iOSで他のアプリから「共有」されたファイルのURLを
|
1
|
+
iOSで他のアプリから「共有」されたファイルのURLを自分の自作アプリで取得する方法
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
SwiftでプログラミングをしてiOS用のPDFを読み込むアプリケーションを作っております。
|
2
|
+
`Swift`でプログラミングをしてiOS用のPDFを読み込むアプリケーションを作っております。
|
3
|
-
他のアプリ(例えばSafari)などから、PDFのファイルを自分の作っているアプリで開きたいのです。
|
3
|
+
他のアプリ(例えば`Safari`や`Files`)などから、PDFのファイルを自分の作っているアプリで開きたいのです。
|
4
4
|
|
5
5
|
### 発生している問題・エラーメッセージ
|
6
6
|
プログラムの内部に保存したPDFファイルからPDFを表示する方法はなんとかTutorialやウェブでの情報を元に探すことができました。
|
6
タイトル変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
他のアプリから「共有」されたファイルをAppDelegate
|
1
|
+
iOSで他のアプリから「共有」されたファイルのURLをAppDelegateで取得する方法
|
body
CHANGED
File without changes
|
5
更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -68,4 +68,21 @@
|
|
68
68
|
|
69
69
|
追記:
|
70
70
|
TsukubaDepot様に教えていただきましたサイトにて、URLをAppDelegateとViewControllerで共有できるプログラミングを追加しました。
|
71
|
-
しかし、AppDelegateから、ViewControllerを呼び出す方法が分からず、結局この共有したURLが上手に利用できずにいます。
|
71
|
+
しかし、AppDelegateから、ViewControllerを呼び出す方法が分からず、結局この共有したURLが上手に利用できずにいます。
|
72
|
+
|
73
|
+
|
74
|
+
追記2:
|
75
|
+
Swiftプログラミンはずぶの素人のため、少しずつ少しずつ勉強しておりましたら、バージョンがどんどん変わっていってしまっていて、もう、あとの、`func application ()...`も反応しなくなってしまいました。いろいろと調べたのですが、結局、共有されたファイルを受け取るURLも取得することもできません。どなたか、他のアプリからのファイルを共有したときに、せめてファイル名を取得できる方法をご教授いただけますと幸いです。
|
76
|
+
|
77
|
+
`https://www.dcom-web.co.jp/lab/swift/custom_url_scheme`を読んで、下記のものに書き換えてみたりもしたのですが、そもそも、下記が呼ばれていないようなのです。。。
|
78
|
+
```swift
|
79
|
+
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
|
80
|
+
// 起動後の処理
|
81
|
+
let alert = UIAlertController(title: "タイトル", message: "アラートのメッセージです。", preferredStyle: .alert)
|
82
|
+
alert.addAction(UIAlertAction(title: "OK", style: .default))
|
83
|
+
viewController.present(alert, animated: true, completion: nil)
|
84
|
+
return true
|
85
|
+
}
|
86
|
+
```
|
87
|
+
以下のウェブサイトも関係しているのかな、と思いましたが、素人故、あまりよく分かりませんでした。。。
|
88
|
+
`https://dev.classmethod.jp/articles/deprecated-openurl/`
|
4
タイトルの明確化
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
他のアプリから
|
1
|
+
他のアプリから「共有」されたファイルをAppDelegate で定義した変数にURLを入れ他のインスタンス(ViewControllerなど)で参照する方法について
|
body
CHANGED
File without changes
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -63,4 +63,9 @@
|
|
63
63
|
### 試したこと
|
64
64
|
上記のようにViewControllerとAppDelegateにプログラミングを作成し、二つをどうにか組み合わせようとしたのですが、どうにも`AppDelegate.swift`で`URL`を取得したものを、上手に`ViewController.swift`に送って、`PDF`として表示することができません。
|
65
65
|
`AppDelegate.swift`に`Import PDFKit`などを入れて直接プログラムを書いてみたりもしたのですが、どうもうまくいきません。。。
|
66
|
-
もしお詳しい方がいらっしゃいましたら、どのように 対処をしたらいいのか、簡単なサンプルコードをつけてご教授いただけますと大変助かります。
|
66
|
+
もしお詳しい方がいらっしゃいましたら、どのように 対処をしたらいいのか、簡単なサンプルコードをつけてご教授いただけますと大変助かります。
|
67
|
+
|
68
|
+
|
69
|
+
追記:
|
70
|
+
TsukubaDepot様に教えていただきましたサイトにて、URLをAppDelegateとViewControllerで共有できるプログラミングを追加しました。
|
71
|
+
しかし、AppDelegateから、ViewControllerを呼び出す方法が分からず、結局この共有したURLが上手に利用できずにいます。
|
2
微修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -48,6 +48,10 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
```AppDelegate
|
51
|
+
|
52
|
+
var appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
|
53
|
+
|
54
|
+
|
51
55
|
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
|
52
56
|
print("url: ", url)
|
53
57
|
pdfUrl = url
|
1
質問の明確化
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,20 +17,30 @@
|
|
17
17
|
import PDFKit
|
18
18
|
|
19
19
|
class ViewController: UIViewController {
|
20
|
-
|
21
20
|
|
22
21
|
@IBOutlet weak var pdfView: PDFView!
|
23
22
|
|
24
|
-
|
25
23
|
override func viewDidLoad() {
|
26
24
|
super.viewDidLoad()
|
27
25
|
// PDFの表示
|
26
|
+
if appDelegate.pdfUrl != nil{
|
28
|
-
|
27
|
+
if let url = appDelegate.pdfUrl{
|
29
|
-
|
28
|
+
if let pdfDocument = PDFDocument(url:url)
|
29
|
+
{
|
30
|
+
pdfView.autoScales = true
|
31
|
+
pdfView.document = pdfDocument
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
else if let url = Bundle.main.url(forResource: "pdf", withExtension: "pdf")
|
37
|
+
{
|
38
|
+
if let pdfDocument = PDFDocument(url:url)
|
39
|
+
{
|
40
|
+
pdfView.autoScales = true
|
30
41
|
pdfView.document = pdfDocument
|
31
|
-
|
42
|
+
}
|
32
43
|
}
|
33
|
-
}
|
34
44
|
}
|
35
45
|
```
|
36
46
|
|
@@ -39,16 +49,11 @@
|
|
39
49
|
|
40
50
|
```AppDelegate
|
41
51
|
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
|
42
|
-
|
52
|
+
print("url: ", url)
|
43
|
-
do {
|
44
|
-
|
53
|
+
pdfUrl = url
|
45
|
-
|
54
|
+
// ここにViewControllerを呼び出すプログラムを入れたいのですが、
|
46
|
-
} catch {
|
47
|
-
print("Unable to load data: (error)")
|
48
|
-
}
|
49
|
-
return true
|
50
|
-
}
|
51
55
|
}
|
56
|
+
|
52
57
|
```
|
53
58
|
|
54
59
|
### 試したこと
|