使用Xamarin表单,在iOS上,如何通过UrL打开文件时检查并打开Word app? 参考:https://docs.microsoft.com/en-us/office/client-developer/integration/integrate-with-office-from-ios-applications
这是我的代码,不起作用:
Device.OpenUri(new Uri("ms-word:ofe|u|https://calibre-ebook.com/downloads/demos/demo.docx"));
请帮助我! 谢谢!
答案 0 :(得分:0)
您在这里要问的是可以使用iOS中的简单WebView来完成的:
首先,创建一个自定义WebView类,使您可以选择文件uri:
public class CustomWebView : WebView
{
public static readonly BindableProperty UriProperty = BindableProperty.Create(propertyName: "Uri",
returnType: typeof(string),
declaringType: typeof(CustomWebView),
defaultValue: default(string));
public string Uri
{
get { return (string)GetValue(UriProperty); }
set { SetValue(UriProperty, value); }
}
}
然后在ios中使用相同的渲染器并执行以下操作:
[assembly: ExportRenderer (typeof(CustomWebView), typeof(CustomWebViewRenderer))]
namespace DisplayPDF.iOS
{
public class CustomWebViewRenderer : ViewRenderer<CustomWebView, UIWebView>
{
protected override void OnElementChanged (ElementChangedEventArgs<CustomWebView> e)
{
base.OnElementChanged (e);
if (Control == null) {
SetNativeControl (new UIWebView ());
}
if (e.OldElement != null) {
// Cleanup
}
if (e.NewElement != null) {
var customWebView = Element as CustomWebView;
string fileName = Path.Combine (NSBundle.MainBundle.BundlePath, string.Format ("Content/{0}", WebUtility.UrlEncode (customWebView.Uri)));
Control.LoadRequest (new NSUrlRequest (new NSUrl (fileName, false)));
Control.ScalesPageToFit = true;
}
}
}
}
然后使用如下所示的自定义控件:
<local:CustomWebView Uri="FooPath" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" />
FooPath 是文档文件的路径。
答案 1 :(得分:0)
我对我的项目有解决方案,请尝试:
如果仅在iOS上打开文件.docx,则可以在iOS的共享代码中编写代码:
检查用户的设备是否具有设置应用程序(Word,Excel,PP等...)
public static bool HasSetupAppDocument(string extension)
{
if (string.IsNullOrEmpty(extension))
return false;
// Device has setup app?
var result = UIApplication.SharedApplication.CanOpenUrl(NSUrl.FromString($"{extension}"));
return result;
}
(例如:extension
是ms-word:
或ms-excel:
或ms-excel:
注释:将源添加到Info.plist
:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>ms-word</string>
<string>ms-excel</string>
<string>ms-powerpoint</string>
</array>
在类依赖关系中,使用URL
打开文件:
Device.OpenUri(new Uri($"{convertExtension}{url}"));
注意:url
是Onedrive上的链接文件共享,并且请确保帐户Onedrive与帐户登录Word
应用程序相同(如果已设置安全性)。 / p>
如果文件的模式为Read-only
,则应用程序Word
将以模式Read-only
打开文件。