問題タブ [sfsafariviewcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1087 参照

ios - SFSafariViewController で WebView リンクを開く

アプリは UIWebView で記事を開きます。それらの記事のリンクを SFSafariViewController で開く必要があります (必須です)。これまでのところ、ウェブビューで開き、ユーザーエクスペリエンスを台無しにします. 私の WebView は HTML 文字列を読み込み、以下のようにコンテンツを読み込みます。

コンテンツとともに、下の画像のようにリンクが表示されます。 アプリのスクリーンショット

記事のリンクを SFSafariViewController で開くにはどうすればよいですか? HTML Strings から来ており、記事リンクの URL がわからないのでどうすればよいですか?

0 投票する
1 に答える
6391 参照

ios - iOS 9 のテーブル ビューから safari ビュー コントローラーを開き、iOS 8 または 7 の safari で開きます

こんにちは、ユーザーが iOS 9 以降を使用している場合、サファリ ビュー コントローラーのテーブル ビュー セルから Web サイトを開きたいと思います。ユーザーが iOS 7 または 8 を使用している場合、Web サイトは標準の Safari アプリで開く必要があります。

これは、サファリを開くために現在使用しているコードです。

このコードは、私の Web サイトで Safari ビュー コントローラーを開く必要があると思います。しかし、両方のコード セットを組み合わせる方法がわかりません。

これは、iOS のバージョンを特定するために使用されるコードであることを理解しています

私はあなたのアドバイスに従いました

次に、このコードをテーブルビューセル didSelectRowAtIndexPath の下に追加しました

このコード行で「宣言されていない識別子 url の使用」というエラーが表示されます

NSStringWithFormat の末尾にある url を削除すると、Safari ビュー コントローラーが機能します。ただし、iOS 9.0 未満、たとえば 8.4 では、アプリがクラッシュします。

0 投票する
1 に答える
3339 参照

ios - iOS 9 - xcode 7 - SFSafariViewController - 画像のアップロード - カメラの黒い画面

私は SFSafariViewController を使用していて、次の問題に遭遇しました。ユーザーに画像のアップロード ボタンが表示されます。デバイスをクリックすると、複数のオプションが適切に表示されます。そのうちの 1 つはカメラです。ユーザーがカメラを選択すると、カメラが読み込まれますが、画面は黒く、アクション ボタンはグレー表示されます。ただし、ユーザーがライブラリを選択すると、選択した画像が適切にアップロードされます。

アプリでカメラのアクセス許可がオンになっていることを確認しました。

ここここにある修正を実装しようとしましたが、役に立ちませんでした。

他の誰かがこの問題に遭遇しましたか?

コード:

-----更新 #1 -----

プライバシー設定をリセットし、カメラから直接画像をアップロードしようとした後、「SafariViewService がカメラにアクセスしようとしている」というメッセージが表示されません。これが問題である可能性があります。同意した後も画面がまだ黒いため、なぜだろうと思います「FooBar」のような私のアプリ名がアクセスを要求しているとは言っていません... おそらく、このずれが原因でカメラの画面が黒いのですが、変更方法がわからないだけです。

-----更新 #2 -----

WKWebView を実装し、カメラが正常に動作するため、これは SFSafariViewController の問題のようです。

0 投票する
0 に答える
206 参照

ios - SFSafariViewController の使用時に UIActivityViewController のテキストをカスタマイズする

アプリ内に Web ページをロードする単純なアプリケーションがあります。iOS 8 ではカスタム を使用し、UIWebViewControlleriOS VideoWebViewController9 ではSFSafariViewController. 内にはVideoWebViewController、 が呼び出されたときに呼び出される次のメソッドがありますUIActivityViewController

を呼び出すときはVideoWebViewController、次のようにしています。

を呼び出すときはSFSafariViewController、次のようにしています。

問題

UIActivityViewControllerで が呼び出されたときのテキストを正確にカスタマイズするにはどうすればよいSFSafariViewControllerでしょうか。VideoWebViewControllerカスタムサブクラスを設定しているので で簡単にできますが、 SFSafariViewController?でそれを行う方法があるかどうかわかりません。ユーザーが で共有シート (UIActivityViewController) を選択すると、SFSafariViewControllerカスタム テキストを追加したいだけです。

アップデート

SFSafariViewController のカスタム サブクラスを作成しましたが、ユーザーが ShareSheet (UIActivityViewController) を選択したときに発生するメソッドを呼び出す方法がわかりません。

これに関するガイダンスをいただければ幸いです。

アップデート

これは可能ではないように見えるので、Apple にバグレポートを作成しました: https://bugreport.apple.com/problem/viewproblem

0 投票する
1 に答える
4955 参照

ios - SFSafariViewController の資格情報をクリアするには?

Swift 2 で SFSafariViewController を使用して、ios 9.1 (13B143) を搭載した iPad Air 2 で Web ページを表示しています。各 Web ページには、ユーザーからの資格情報が必要です。ただし、ユーザーがログアウト ボタンを押したときに、それらの資格情報をクリアする必要があります。私は以下を使用してみました:

しかし、うまくいきません。実際、「DELETING CREDENTIAL」と「DELETING COOKIE」は印刷されません。さらに、iPad からアプリを完全に削除して再インストールすることもできます。Web URL に戻っても資格情報はキャッシュされたままです。資格情報をクリアする唯一の方法は、iPad をシャットダウンして電源を入れることです。

質問: プログラムで資格情報をクリアするにはどうすればよいですか?

0 投票する
2 に答える
4166 参照

ios - iOS 9 - SFSafariViewController 経由で読み込まれた Web ページの下部にあるツールバーを非表示にします

SFSafariViewController を使用して URL を読み込むページの下部に表示されるナビゲーション ツールバー (前後に移動、Safari で開く...) を非表示にしようとしています。ナビゲーションコントローラーで次のプロパティを設定しようとしましたが、機能しませんでした/ [_safariViewController.navigationController setToolbarHidden:YES]; UIWebView クラスを使用するビュー コントローラーを使用すると、これを非表示にすることができます。助言がありますか?

ありがとう

0 投票する
0 に答える
713 参照

ios - タブバー付きのSafariビューコントローラー

タブベースの迅速なアプリケーションにタブを追加して、サファリビューコントローラーを開き、「完了」をタップすると前のタブに戻りたいと考えています。これをGoogleで検索しようと何度も試みた後、解決策が見つかりませんでした。誰でも助けることができますか?

0 投票する
0 に答える
185 参照

ios - SFSafariViewController を表示すると、NSFetchedResultsController データが解放されます

アプリ内の記事にリンクされた Web ページを表示していますが、すべてが SSL 接続を提供しているわけではありません。そのため、Web サイトを表示するために SFSafariViewController を実装する必要がありました。

私の iPad インターフェイスでは、手動でビューを mainController に追加しますが、SFSafariViewController のビューを追加しようとしても、何も得られません。

だから私は使用しようとしました:

ただし、これは非常にうまく機能しますが、何らかの理由でデータソースが後で「nil」オブジェクトを返します。presentViewController を呼び出すビュー内のオブジェクトへの強力なリンクを保持していても。

私の回避策は、開いているすべてのビューを閉じ、SFSafariViewController が閉じられたときにデータセットをリロードすることですが、ユーザーは元の場所に戻る必要があるため、これはユーザー エクスペリエンスには適していません。

SFSafariViewController の起動後に NSFetchedResultsControllers がすべて「nil」を返す理由は完全にわかりません。どんなヒントでも大歓迎です。

[編集:] これは私のメイン ビュー コントローラーの宣言です。iPad コントローラーは、SFSafariViewController を起動するときに、このコントローラーを呼び出します。

SFSafariViewController の呼び出し (親は DOMainViewController です):

DOiPadController の定義は次のとおりです。ここで、表示される s=views は _viewControllers に格納されます。

必要がなくなったらそこからビュー コントローラーを解放し、必要に応じて新しいビュー コントローラーを追加します。これにより、ビューなどをスライスして切り取ることができます。

iPhone アプリでは、ビューにナビゲーション コントローラーを使用していますが、問題はないようです。