問題タブ [uiactivity]
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.
ios - UIActivityViewController 共有拡張アクティビティの制限
私はUIActivityViewController
いくつかのカスタム UIActivityProvider を使用しています。私のプロバイダーは、、、およびカスタム データ オブジェクトを返しNSString
ますUIImage
。共有したくないアクティビティは設定UIActivityViewController excludedActivityTypes
と Apple のビルトイン アクティビティ タイプで除外しています。
私が気に入らないのは、提示された UIActivityViewController に表示される、ビルドされていないアクティビティ タイプのアプリです。アプリがテキストと画像データを処理できることを iOS 8 に通知したため、これらが表示されると思います。例としては、Flickr、Evernote、FaceBook の共有拡張機能があります。これらのアクティビティには、ハードコーディングしたくない独自のアクティビティ URL タイプがあります。
アクティビティの共有にこれらのアプリを入れたくない理由は、ほとんどが適切に機能せず、最終的にユーザーに悪い体験を与え、アプリの実装が不十分であると非難する可能性があるためです. 現実には、これらのアプリは、できると主張するデータを処理していません。たとえば、Evernote は常に空の投稿ダイアログを表示します。Facebook の共有拡張機能のように、データ型を処理できない場合にエラーをログに記録するものもあります (本当に?)。
サードパーティの共有拡張機能をすべてブロックすることはできますか?
答えが「いいえ」の場合、2 つのオプションしかないようです。
- Apple の組み込みアクティビティとカスタム アクティビティとのみ共有する
- サードパーティの拡張機能が手を離すのを許可する
- すべてのコンテンツをカスタム クラスでラップして、拡張機能が認識できないようにします。これにより、Facebook からログに記録されたエラーが生成されます
難しさはinitWithPlaceholderItem:(id)placeholderItem
. 拡張機能が処理できると言っている汎用の NSString または UIImage を返しますが、多くの場合、処理しないか、投稿時にエラーをログに記録します。これは、共有拡張機能を検出するには恐ろしい場所です。
ユーザーに最も柔軟な共有エクスペリエンスを提供したいが、サードパーティの実装が貧弱であることを犠牲にしてはならない.
UIActivityController
SO でコードを表示したいのはわかっていますが、定型的な飼料以外のコードは考えられません。
ios - サードパーティの拡張機能がアプリの [開く] リストに表示されないようにする
私のアプリでは、[開く] というタイトルの共有シートにカスタム アクティビティを実装しました。このアイコンをタップすると、.txt ファイルが生成され、この生成された .txt ファイルを開いて操作できるアプリケーションのリストが表示されます。iOS は、共有シート内の各アプリの名前の前に自動的に "Open in" を付加します。
しかし、サードパーティの開発者が共有拡張機能を実装したため、何らかの理由で、この Open In インターフェイスにもそれらが表示されています。たとえば、Twitter が表示されますが、それをタップすると、.txt ファイル内のテキストが作成ウィンドウに表示されません。したがって、これらのサードパーティの共有拡張機能は、このインターフェイスではまったく役に立ちません。さらに、それらは元の共有シートに既に表示されていました (そしてそこで動作します)。ユーザーは [開く] をタップしたため、.txt ファイルを開くことができるアプリのみが表示されます。
このカスタム アクティビティで Open In アプリのみが提供されるようにするにはどうすればよいですか?
ios - 提供された不明なアクティビティ アイテム: ("")
UIActivityViewController のサブクラスを使用して、カスタム UIActivities を表示しています。
コントローラーが表示されているとき、私は得ています
私のログで。
MyClass は NSObject をサブクラス化し、UIActivity のタップによって呼び出される新しい ViewController に渡されます。
MyClass にプロトコル UIActivityItemSource を実装しようとしましたが、問題は解決しませんでした。
MyClass オブジェクトは配列で [UIActivityViewController init] にactivityItemsパラメーターとして渡されますが、ドキュメントには次のように記載されているだけなので、問題になることはありません。
アクティビティを実行するデータ オブジェクトの配列。配列内のオブジェクトのタイプは可変であり、アプリケーションが管理するデータに依存します。たとえば、データは、現在選択されているコンテンツを表す 1 つ以上の文字列または画像オブジェクトで構成される場合があります。
編集:
これは私が共有できるコードです:
ios - ios: アプリへのリンク/画像/テキストを共有できるようにする
アプリを Safari や写真などの共有アクティビティ リストに表示するにはどうすればよいですか? Facebook と同じように、アプリを介してリンク/画像またはテキストを共有できるようにしたいと考えています。
Facebook/Twitter などはデフォルトUIActivityType
のリストで利用できますが、Pinterest や Zomato などの他のアプリはどのようにこれを実現していますか?
ios - CollectionView のオブジェクトを UIActivity から削除する
UICollectionView
で選択した複数のオブジェクトを自分の から削除しようとすると問題が発生しますUIActivity
。
FilesCollectionController.h
このコレクション ビューでは、ファイル パスを使用して画像を表示します。
FilesCollectionController.m
ActivityTrash.h
ActivityTrash.m
ファイルは実際に削除されます。しかし、問題は、終了した直後に[self.collectionView reloadData]
FilesCollectionControllerをUIActivity
呼び出したいため、コレクション ビューがすぐに更新されることです...
ios - UIActivityViewController アクティビティ項目の出現順序
私はUIActivityViewController
with system activities と Customを持っていUIActivities
ます。UIActivityViewController
特定の順序でアイテムを表示することはできますか? つまり、カスタム UIActivity をアクティビティ項目のリストの最初に表示して、システム アクティビティの前に表示したいのUIActivityTypeSaveToCameraRoll
です。
ios - Facebook 共有のこれら 2 つの UIActivityType の違いは何ですか?
iOS アプリで Facebook 経由でコンテンツを共有する場合、メソッド内で
これactivityType
はcom.facebook.Facebook.ShareExtension
一部のデバイス用でありcom.apple.UIKit.activity.PostToFacebook
、他のデバイス用です。
それぞれにいつ会えると思いますか?Facebook アプリは、テストした各デバイスにインストールされています。
ios - iOS 7 & 8 カスタム アクティビティ画像の違い
UIActivity
iOS 7 以降、コンポーネントを介して共有する目的でカスタムの activityImages が含まれています。このApple の公式ドキュメントによると、すべての非透明ピクセルはグレーのグラデーションでオーバーレイされると記載されています。有用な部分 (グレーになった部分) を除いて、主に透明 (透明なピクセルが白くなった) で使用した画像。
iOS 8.4 の最新の XCode で同じアプリケーションを実行すると、これは異なるようです。Apple は、iOS 7 では灰色のオーバーレイで色の使用を制限していましたが、iOS 8 ではそうではないようです。これにより、デバイスで実行されている iOS のバージョンに基づいて 2 つの異なる画像が生成されます。この変更に関するドキュメントが見つからないようです。公式ドキュメントも同様に適応されていません。したがって、これが Apple 関連のバグなのか機能なのかはわかりません。
カスタム activityImages を使用する場合、2 種類のイメージ (iOS 7 用と iOS 8 用) をサポートする必要がありますか?
誰かがこれに関する詳細情報を参照できる場合は、そうしてください。