xamarin 完成从WebView回调

11dmarpk  于 2023-04-03  发布在  其他
关注(0)|答案(2)|浏览(210)

在我的XF应用程序中,我可以打开一个网页。
为此,我使用Xamarin.基本:等待浏览器.OpenAsync(网址,选项);.
我需要在用户点击完成按钮(在iOS上)或返回按钮(在Andorid上)时进行回调。
我该怎么做?
除了使用Xamarin之外,还有另一种方法。
谢谢大家!

编辑

当WebView打开时,当用户点击iOS中的“完成按钮”或Android上的返回按钮时,我需要执行一些C#代码。
我并不是要执行一些JavaScript代码,或者从JavaScript中执行C#代码。

Android video .
Sample here.

x7rlezfr

x7rlezfr1#

是的,如果你不想使用Essentials打开页面,你可以使用

Device.OpenUri(new Uri("www.example.com"));

如果你想让它处于异步状态

await Device.OpenUri(new Uri("www.example.com"));

如果您正在考虑从webview添加回调功能,则需要为iOS和Android创建HybridWebView和自定义渲染器,as shown here

pb3s4cty

pb3s4cty2#

我们通过在将用户发送到浏览器时设置一个标志来解决这个问题,然后在返回OnAppearing()时检查该标志。

public partial class PurchasePage : ContentPage {

  bool isPurchasing = false;

  protected override void OnAppearing()
  {
    base.OnAppearing();
    if(isPurchasing) {
      isPurchasing = false;
      // Check if purchase completed successfully, etc...
    }
  }

  public BeginPurchase(){
    isPurchasing = true;
    await Browser.OpenAsync("https://example.com/purchase")
  }
}

相关问题