我有一个提供的托管应用程序,它托管在 Azure 中并部署在 SharePoint 站点中。我们在 Provider Hosted 应用程序中创建了 Web 部件。
此 Web 部件使用在提供商托管应用程序中创建的标记呈现页面 (StartPage.aspx),如下所示。
注意:StartPage.aspx 位于提供商托管的应用程序中。
这意味着,StartPage.aspx 是从 Azure 浏览的,因为提供商托管的应用程序托管在 Azure 应用程序服务中。
<ClientWebPart Name="WebPart" Title="Title" Description="Description" DefaultWidth="1000" DefaultHeight="1000" >
<Content Type="html" Src="~remoteAppUrl/Pages/StartPage.aspx?{StandardTokens}" Location="" />
<Properties>
</Properties>
尝试在桌面、Android/Windows 设备中浏览时,它按预期工作,但在尝试在 IOS 设备上工作时,它无法正常工作。
我们在 .ascx 文件中编写代码并将该文件连接到 .aspx 页面,我们在 WebPart 代码中引用 .aspx 页面,如上所述。
下面是为每个不起作用的文件添加的代码: //StartPage.aspx 的代码
<%@ Page Title="Test" Language="C#" ClientIDMode="Static" EnableViewState="true" AutoEventWireup="true" CodeBehind="StartPage.aspx.cs" Inherits="Web.Pages.StartPage" %> < %@ 注册 Src="~/UserControls/MyTasks.ascx" TagPrefix="uc1" TagName="MyTasks" %>
<html >
<head>
<title> Test Working </title>
<meta http-equiv="X-UA-Compatible" content="EDGE" >
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:MyTasks runat="server" ID="MyTasks" />
</div>
</form>
</body>
</html>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyTasks.ascx.cs" Inherits="UserControls.MyTasks" %>
<div>
<ol>
<li>Coffee1</li>
<li>Tea1</li>
<li>Milk1</li>
</ol>
<label>Category</label>
</div>
由于 Web 部件正在呈现 StartPage.aspx,因此它在 Web 部件内的 iframe 中打开它。似乎 iframe 没有按预期在 iOS 设备中加载。
据我们了解,要呈现 StartPage.aspx,SharePoint 会调用此页面 (sitecollection/_layouts/15/appredirect.aspx?redirect_uri=hostname/StartPage.aspx)。因此,它重定向到 appredirect.aspx,然后重定向到查询字符串参数中提到的 StartPage - “redirect_uri”。
我们目前正在开发 .NET 框架版本 4.7.2。我们也尝试更改版本,但问题存在。
如果您对此有任何解决方案,请告诉我们。