如何解决带有React-Navigation的React-Native深度链接不起作用
我一直在尝试通过react-navigation(v5)为我的应用设置深层链接,因此我按照他们的指示进行操作。我已经编辑了我的应用程序委托,以包括我需要的软件包以及我从其网站复制粘贴的Deeplinking / Universal方法。
之后,他们说要将该方案添加到项目的配置中,所以我按照他们说的去写
string frm = string.Format(@"http add urlacl url={0}:{1} user={2}\{3}",address,port,domain,user);
Process.Start(new processstartinfo("netsh",frm)
{
Verb = "runas",CreateNowindow = true,WindowStyle = ProcessWindowStyle.Hidden,UseShellExecute = true
}).WaitForExit();
在终端中,我可以确认它是否有效,因为我可以 _hostConfiguration = new ExtendHttpSelfHostConfiguration(
string.Concat(url,":",port))
{
MaxReceivedMessageSize = int.MaxValue,MaxBufferSize = int.MaxValue
};
_server = new HttpSelfHostServer(_hostConfiguration);
_hostingTask = _server.OpenAsync();
_hostingTask.Wait();
并返回
public class ExtendHttpSelfHostConfiguration : HttpSelfHostConfiguration
{
/// <summary>
///
/// </summary>
/// <param name="baseAddress"></param>
public ExtendHttpSelfHostConfiguration(string baseAddress) : base(baseAddress) => Configure();
/// <summary>
///
/// </summary>
/// <param name="baseAddress"></param>
public ExtendHttpSelfHostConfiguration(Uri baseAddress) : base(baseAddress) => Configure();
/// <summary>
///
/// </summary>
/// <param name="httpBinding"></param>
/// <returns></returns>
protected override BindingParameterCollection OnConfigureBinding(HttpBinding httpBinding)
{
if (BaseAddress.ToString().ToLower().StartsWith("https://"))
{
httpBinding.Security.Mode = HttpBindingSecurityMode.Transport;
}
return base.OnConfigureBinding(httpBinding);
}
private void Configure()
{
ConfigureCors();
ConfigureRoutes();
ConfigureFormatters();
ConfigureFilters();
ConfigureProviders();
ConfigureSwagger();
ConfigureLogger();
}
private void ConfigureSwagger()
{
#if DEBUG
this.EnableSwagger(c =>
{
c.SingleApiVersion("v1","Host services");
c.DescribeAllEnumsAsstrings();
c.IncludeXmlComments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,string.Concat(Assembly.GetExecutingAssembly().GetName().Name + ".xml")));
}).EnableSwaggerUi();
#else
#endif
}
private void ConfigureLogger() => XmlConfigurator.Configure();
private void ConfigureProviders() => FluentValidationModelValidatorProvider.Configure(this);
private void ConfigureFilters() => Filters.Add(new ValidationFilter());
private void ConfigureCors() => this.EnableCors(new EnableCorsAttribute("*","*","*"));
private void ConfigureRoutes() => this.MapHttpAttributeRoutes();
private void ConfigureFormatters()
{
Formatters.JsonFormatter.SupportedMediaTypes.Clear();
Formatters.XmlFormatter.SupportedMediaTypes.Clear();
Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
Formatters.XmlFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/xml"));
Formatters.OfType<JsonMediaTypeFormatter>().First().SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
}
现在我只需要通过运行npx uri-scheme add playlist --ios
或npx uri-scheme list
来进行测试,那么当我得到以下错误时:
› iOS: Schemes for config: ./ios/audvice-tvOS/Info.plist
› playlist://
› Android: Schemes for config: ./android/app/src/main/AndroidManifest.xml
› ${applicationId}://
› ${applicationId}://
› ${applicationId}://
› https://
有人遇到过吗?预先感谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。