質問編集履歴
7
small modification
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
iOSで他のアプリから「共有」されたファイルのURLを
|
1
|
+
iOSで他のアプリから「共有」されたファイルのURLを自分の自作アプリで取得する方法
|
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
SwiftでプログラミングをしてiOS用のPDFを読み込むアプリケーションを作っております。
|
3
|
+
`Swift`でプログラミングをしてiOS用のPDFを読み込むアプリケーションを作っております。
|
4
4
|
|
5
|
-
他のアプリ(例えばSafari)などから、PDFのファイルを自分の作っているアプリで開きたいのです。
|
5
|
+
他のアプリ(例えば`Safari`や`Files`)などから、PDFのファイルを自分の作っているアプリで開きたいのです。
|
6
6
|
|
7
7
|
|
8
8
|
|
6
タイトル変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
他のアプリから「共有」されたファイルをAppDelegate
|
1
|
+
iOSで他のアプリから「共有」されたファイルのURLをAppDelegateで取得する方法
|
test
CHANGED
File without changes
|
5
更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -139,3 +139,37 @@
|
|
139
139
|
TsukubaDepot様に教えていただきましたサイトにて、URLをAppDelegateとViewControllerで共有できるプログラミングを追加しました。
|
140
140
|
|
141
141
|
しかし、AppDelegateから、ViewControllerを呼び出す方法が分からず、結局この共有したURLが上手に利用できずにいます。
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
追記2:
|
148
|
+
|
149
|
+
Swiftプログラミンはずぶの素人のため、少しずつ少しずつ勉強しておりましたら、バージョンがどんどん変わっていってしまっていて、もう、あとの、`func application ()...`も反応しなくなってしまいました。いろいろと調べたのですが、結局、共有されたファイルを受け取るURLも取得することもできません。どなたか、他のアプリからのファイルを共有したときに、せめてファイル名を取得できる方法をご教授いただけますと幸いです。
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
`https://www.dcom-web.co.jp/lab/swift/custom_url_scheme`を読んで、下記のものに書き換えてみたりもしたのですが、そもそも、下記が呼ばれていないようなのです。。。
|
154
|
+
|
155
|
+
```swift
|
156
|
+
|
157
|
+
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
|
158
|
+
|
159
|
+
// 起動後の処理
|
160
|
+
|
161
|
+
let alert = UIAlertController(title: "タイトル", message: "アラートのメッセージです。", preferredStyle: .alert)
|
162
|
+
|
163
|
+
alert.addAction(UIAlertAction(title: "OK", style: .default))
|
164
|
+
|
165
|
+
viewController.present(alert, animated: true, completion: nil)
|
166
|
+
|
167
|
+
return true
|
168
|
+
|
169
|
+
}
|
170
|
+
|
171
|
+
```
|
172
|
+
|
173
|
+
以下のウェブサイトも関係しているのかな、と思いましたが、素人故、あまりよく分かりませんでした。。。
|
174
|
+
|
175
|
+
`https://dev.classmethod.jp/articles/deprecated-openurl/`
|
4
タイトルの明確化
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
他のアプリからファイルを
|
1
|
+
他のアプリから「共有」されたファイルをAppDelegate で定義した変数にURLを入れ他のインスタンス(ViewControllerなど)で参照する方法について
|
test
CHANGED
File without changes
|
3
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -129,3 +129,13 @@
|
|
129
129
|
`AppDelegate.swift`に`Import PDFKit`などを入れて直接プログラムを書いてみたりもしたのですが、どうもうまくいきません。。。
|
130
130
|
|
131
131
|
もしお詳しい方がいらっしゃいましたら、どのように 対処をしたらいいのか、簡単なサンプルコードをつけてご教授いただけますと大変助かります。
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
追記:
|
138
|
+
|
139
|
+
TsukubaDepot様に教えていただきましたサイトにて、URLをAppDelegateとViewControllerで共有できるプログラミングを追加しました。
|
140
|
+
|
141
|
+
しかし、AppDelegateから、ViewControllerを呼び出す方法が分からず、結局この共有したURLが上手に利用できずにいます。
|
2
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -98,6 +98,14 @@
|
|
98
98
|
|
99
99
|
```AppDelegate
|
100
100
|
|
101
|
+
|
102
|
+
|
103
|
+
var appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
101
109
|
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
|
102
110
|
|
103
111
|
print("url: ", url)
|
1
質問の明確化
test
CHANGED
File without changes
|
test
CHANGED
@@ -36,13 +36,9 @@
|
|
36
36
|
|
37
37
|
class ViewController: UIViewController {
|
38
38
|
|
39
|
-
|
40
|
-
|
41
39
|
|
42
40
|
|
43
41
|
@IBOutlet weak var pdfView: PDFView!
|
44
|
-
|
45
|
-
|
46
42
|
|
47
43
|
|
48
44
|
|
@@ -52,17 +48,41 @@
|
|
52
48
|
|
53
49
|
// PDFの表示
|
54
50
|
|
55
|
-
if let
|
51
|
+
if appDelegate.pdfUrl != nil{
|
56
52
|
|
53
|
+
if let url = appDelegate.pdfUrl{
|
54
|
+
|
57
|
-
if let pdfDocument = PDFDocument(url:url)
|
55
|
+
if let pdfDocument = PDFDocument(url:url)
|
56
|
+
|
57
|
+
{
|
58
|
+
|
59
|
+
pdfView.autoScales = true
|
60
|
+
|
61
|
+
pdfView.document = pdfDocument
|
62
|
+
|
63
|
+
}
|
64
|
+
|
65
|
+
}
|
66
|
+
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
else if let url = Bundle.main.url(forResource: "pdf", withExtension: "pdf")
|
72
|
+
|
73
|
+
{
|
74
|
+
|
75
|
+
if let pdfDocument = PDFDocument(url:url)
|
76
|
+
|
77
|
+
{
|
78
|
+
|
79
|
+
pdfView.autoScales = true
|
58
80
|
|
59
81
|
pdfView.document = pdfDocument
|
60
82
|
|
61
|
-
|
83
|
+
}
|
62
84
|
|
63
85
|
}
|
64
|
-
|
65
|
-
}
|
66
86
|
|
67
87
|
}
|
68
88
|
|
@@ -80,25 +100,15 @@
|
|
80
100
|
|
81
101
|
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
|
82
102
|
|
83
|
-
|
103
|
+
print("url: ", url)
|
84
104
|
|
85
|
-
|
105
|
+
pdfUrl = url
|
86
106
|
|
87
|
-
let data = try Data(contentsOf: url)
|
88
|
-
|
89
|
-
|
107
|
+
// ここにViewControllerを呼び出すプログラムを入れたいのですが、
|
90
|
-
|
91
|
-
} catch {
|
92
|
-
|
93
|
-
print("Unable to load data: (error)")
|
94
|
-
|
95
|
-
}
|
96
|
-
|
97
|
-
return true
|
98
|
-
|
99
|
-
}
|
100
108
|
|
101
109
|
}
|
110
|
+
|
111
|
+
|
102
112
|
|
103
113
|
```
|
104
114
|
|