1
Xamarinを使ってiOSアプリケーションを開発しています。 URLを共有するためにChromeから拡張機能を開くと、[投稿]ダイアログが表示されます。投稿がヒットしたら、共有URLの入力を求めます。プロンプトのダイアログは表示されますが、空です。私は正しくURLを抽出していないようです。拡張コンテキストからURLを抽出
次のコードを使用して、拡張コンテキストからURLを抽出しています。ここで
var urlstr = string.Empty;
var item = ExtensionContext.InputItems[0];
NSItemProvider prov = null;
if (item != null)
prov = item.Attachments[0];
if (prov != null)
{
prov.LoadItem(UTType.URL, null, (NSObject url, NSError error) =>
{
if (url == null)
return;
NSUrl newUrl = (NSUrl)url;
urlstr = newUrl.ToString();
});
UIAlertController alert = UIAlertController.Create("Share extension", urlstr, UIAlertControllerStyle.Alert);
PresentViewController(alert, true,() =>
{
DispatchQueue.MainQueue.DispatchAfter(new DispatchTime(DispatchTime.Now, 5000000000),() =>
{
ExtensionContext.CompleteRequest(null, null);
});
});
}
はLoadItem
が非同期であるためのInfo.plistファイルから辞書
<dict>
<key>NSExtensionActivationRule</key>
<string>TRUEPREDICATE</string>
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
<integer>1</integer>
<key>NSExtensionActivationSupportsWebPageWithMaxCount</key>
<integer>1</integer>
</dict>