質問編集履歴

7

small modification

2021/11/11 12:22

投稿

sekiseki_2
sekiseki_2

スコア2

test CHANGED
@@ -1 +1 @@
1
- iOSで他のアプリから「共有」されたファイルのURLをAppDelegateで取得する方法
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

タイトル変更

2021/11/11 12:22

投稿

sekiseki_2
sekiseki_2

スコア2

test CHANGED
@@ -1 +1 @@
1
- 他のアプリから「共有」されたファイルをAppDelegate 定義した変数にURLを入れ他のインスタンス(ViewControllerなど)で参照する方法について
1
+ iOSで他のアプリから「共有」されたファイルのURLをAppDelegateで取得する方法
test CHANGED
File without changes

5

更新

2021/11/11 09:57

投稿

sekiseki_2
sekiseki_2

スコア2

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

タイトルの明確化

2021/11/11 08:32

投稿

sekiseki_2
sekiseki_2

スコア2

test CHANGED
@@ -1 +1 @@
1
- 他のアプリからファイルをてもらって、渡さたファルを表示する方法
1
+ 他のアプリから「共有」されたファイルをAppDelegate で定義た変数にURLを入他のンスタンス(ViewControllerなど)で参照する方法について
test CHANGED
File without changes

3

追記

2020/09/20 02:28

投稿

sekiseki_2
sekiseki_2

スコア2

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

微修正

2020/09/20 02:26

投稿

sekiseki_2
sekiseki_2

スコア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

質問の明確化

2020/09/20 02:24

投稿

sekiseki_2
sekiseki_2

スコア2

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 url = Bundle.main.url(forResource: "pdf", withExtension: "pdf"){
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
- print("url: ", url)
103
+ print("url: ", url)
84
104
 
85
- do {
105
+ pdfUrl = url
86
106
 
87
- let data = try Data(contentsOf: url)
88
-
89
- // ここに上記のurlを使いPDFを表示プログラムを書きたいのです
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