【发布时间】:2021-09-21 00:01:23
【问题描述】:
我已经实现了带有返回 URL 的付款方式,并在我的应用程序中使用了 webview 打开 URL。最近,我的问题是希望自动关闭 webview 并响应成功或失败处理付款。
【问题讨论】:
标签: c# xamarin.forms xamarin.android
我已经实现了带有返回 URL 的付款方式,并在我的应用程序中使用了 webview 打开 URL。最近,我的问题是希望自动关闭 webview 并响应成功或失败处理付款。
【问题讨论】:
标签: c# xamarin.forms xamarin.android
我遇到过这种情况。这是我找到的解决方案。
创建 WebElement 后,我们将 Navigating 事件绑定到某个方法。
MyPage.Source = link;
MyPage.Navigating += Webview_Navigating;
MyPageWebElment 姓名。
link是我的链接地址
.
然后我们在这里执行我们的交易。
private void Webview_Navigating(object sender, WebNavigatingEventArgs e)
{
var url = e.Url;
if (url.Contains("status=1"))
{
int ordID = 0;
//save order
}
}
对我来说,如果更改的链接地址结账状态=1,则结账成功。
您需要调用WebNavigatingEventArgs 中的Url 属性来捕获更改的url
如果有用,请选择。祝你好运
【讨论】:
status1
当然!您可以获得响应表单 WebView。 我建议您使用 HybridWebView(请参阅:https://github.com/devsmadeofsteel/Plugin.HybridWebView)作为替代。
例子:
在 Xamarin 页面中,创建浏览器添加注册命名回调,并将浏览器添加到页面子级
HybridWebViewControl Browser = new HybridWebViewControl();
//You can load browser content by string or URL, here is string which you can hard code or store in resource files
Browser.ContentType = Plugin.HybridWebView.Shared.Enumerations.WebViewContentType.Internet;
Browser.Source = YourUrl;
Browser.AddLocalCallback(YourCallBackFunctionName, CallBackFunction);
运行时,HybridWebViewControl 将插入一个您在 YourCallBackFunctionName,单个参数为字符串类型。所以,在YourUrl加载的页面的JavaScript中,可以用指定的CallBackFunctionName进行回调:
function AnyFunction() {
//...
YourCallBackFunctionName(YourStringParameter);
}
当您在 JavaScript 中调用 YourCallBackFunctionName(YourStringParameter) 时,您可以使用 C# 在 CallBackFunction 中获取 YourStringParameter。 因此,您可以定义不同的 CallBackFunction 或通过单个 CallBackFunction 传递不同的参数来控制 HybridWebView 以及包含它的页面或视图,例如隐藏 HybridWebView 或关闭页面。
试一试!
【讨论】: