質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

363閲覧

MessageUI Frameworkが表示されない件について・・・。

yutopc7788

総合スコア12

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/07/05 07:29

一通り設定をしたのですが、ボタンを押しても表示されません。
「messageBton」というボタンに紐付いて表示をするように設定しています。

ボタンのコードは下記の通りです。

swift

1 @IBAction func messageBton(_ sender: Any) { 2 if MFMessageComposeViewController.canSendText() { 3 print("メッセージ") 4 let controller = MFMessageComposeViewController() 5 controller.body = "Hello." 6 controller.messageComposeDelegate = self 7 self.present(controller, animated: true, completion: nil) 8 } 9 }

それ以外の関係するコードは下記になります。

swift

1import UIKit 2import WebKit 3import MessageUI 4 5class ViewController: UIViewController ,WKUIDelegate ,WKNavigationDelegate ,WKScriptMessageHandler ,MFMessageComposeViewControllerDelegate{ 6 @IBOutlet weak var Webview: WKWebView! 7 @IBOutlet weak var progressView: UIProgressView! 8 9 var url = "https://www.ylifesite.net/test2/1.html" 10 11 override func loadView() { 12 super.loadView() 13 Webview.configuration.userContentController.add(self, name: "callbackHandler") 14 //Webview = WKWebView(frame: view.frame,configuration: webCfg) 15 Webview.uiDelegate = self 16 Webview.navigationDelegate = self 17 //self.view = Webview 18 self.view.addSubview(Webview) 19 //self.view.sendSubview(toBack: Webview) 20====省略==== 21 func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) { 22 controller.dismiss(animated: true, completion: nil) 23 }

※テストになりますので今現在はloadView()に記載してあります。

大変お忙しいと思いですが、お分かりの方よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

MFMessageComposeViewController.canSendText()の戻り値はどうなっていますか?

どのような方法でも良いですが、例えば以下のような方法で確認できます。

swift

1 if MFMessageComposeViewController.canSendText() { 2 print("メッセージ") 3 let controller = MFMessageComposeViewController() 4 controller.body = "Hello." 5 controller.messageComposeDelegate = self 6 self.present(controller, animated: true, completion: nil) 7 } else { 8 print("メッセージ機能は利用できません。") 9 }

canSendText()がfalseであれば、単純に実行環境でメッセージ機能が利用できないということになります。

何も出力しないのであれば、そもそもこのイベントハンドラが呼ばれていない事になります。

self.present(controller, animated: true, completion: nil)まで呼ばれているのに画面に何も出ないのであれば、おそらくxcodeの出力欄になんらかのエラーが出ていると思います。

投稿2018/07/05 07:42

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yutopc7788

2018/07/07 12:09

「メッセージ機能は使用できません」が出力されました。 この場合の対策はどうしたら良いでしょうか? よろしくお願いします。
takabosoft

2018/07/09 08:13

その環境で標準の「メッセージ」アプリは使えていますか?
yutopc7788

2018/07/10 00:53

シミュレーターなので使用できる環境ではあります。 Apple Developer Program登録をしていないからでしょうか?
guest

0

ベストアンサー

再投稿されていましたがこちらの方に回答させていただきます。

シミュレーターでは使えませんでした。
実機の場合でもiMessageが使える状態になっていない場合には使えませんでした。

緑色の吹き出しマークがついているアプリでAppleIDのサインアップなどをして
メッセージアプリが使える状態になっていればMFMessageComposeViewControllerが使えると思います。

ちなみにApple Developer Programに登録していないアカウントでも大丈夫でした。

投稿2018/07/28 20:18

razuma

総合スコア1313

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yutopc7788

2018/07/31 02:41

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問