从自定义Xamarin.Forms视图调用本机异步方法

时间:2018-04-19 15:01:44

标签: c# xamarin xamarin.forms

我知道从Xamarin.Forms视图调用本机API的推荐方法是使用" Requested"创建一个事件。名称后缀,然后从Renderer处理它。例如,ScrollTo用于async

在我的情况下,我想调用一个原生API,它不仅返回数据,而且还 WebView -

一个很好的例子是UWP InvokeScriptAsync控件,它具有IAsyncOperation<string>方法,该方法是异步的并返回delegate Task<string> InvokeScriptRequestedHandler(); event InvokeScriptRequestedHandler InvokeScriptRequested;

如果我直接遵循正常的建议,我可以提出一个代表:

public async Task<string> InvokeScriptAsync()
{
    var handler = InvokeScriptRequested;
    if (handler != null)
    {
        return await handler.Invoke();
    }
    return null;
}

并在Xamarin.Forms自定义视图中使用以下内容:

Task<string>

这实际上可以正常工作,但事件返回值已经很不寻常了,如果它是highlight则更是如此。

是否有最佳做法如何处理此类情景?

0 个答案:

没有答案