【问题标题】:Close webview xamarin forms关闭 webview xamarin 表单
【发布时间】:2021-09-21 00:01:23
【问题描述】:

我已经实现了带有返回 URL 的付款方式,并在我的应用程序中使用了 webview 打开 URL。最近,我的问题是希望自动关闭 webview 并响应成功或失败处理付款。

【问题讨论】:

    标签: c# xamarin.forms xamarin.android


    【解决方案1】:

    我遇到过这种情况。这是我找到的解决方案。

    创建 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

    如果有用,请选择。祝你好运

    【讨论】:

    • 嗨@Emin。感谢您的解决方案。但不可能有问题。我可以通过进度付款成功获得对 webview 的响应对象模型吗?
    • @Jack 您可以通过查看您使用的支付系统的文档来了解交易是否成功。例如我有: 操作成功后,我的支付系统通过更改链接更改为status1
    【解决方案2】:

    当然!您可以获得响应表单 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 或关闭页面。

    试一试!

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 2016-12-08
      相关资源
      最近更新 更多