【问题标题】:Xamarin Forms WebviewXamarin 窗体 Web 视图
【发布时间】:2018-09-15 18:41:05
【问题描述】:

当我尝试使用 Xamarin.forms.view 从我的 Angular 应用程序打开页面时,我目前收到以下错误

04-05 20:12:17.110 W/BindingManager( 3550): Cannot call determinedVisibility() - never saw a connection for the pid: 3550[INFO:CONSOLE(1)] "ERROR", source: http://my-url/main.61d2d58c98366844c6a5.bundle.js (1)

我的 HybridView 正在创建如下:

      _WebView = new UIHybridWebview
        {
            IsLocalData = false,
            Uri = "http://my-url/#/user/create",             
            VerticalOptions = LayoutOptions.FillAndExpand,
            HorizontalOptions = LayoutOptions.FillAndExpand,

        };

其中 UIHybridWebView 是来自 Xamarin.Form 的视图。

我该如何解决这个问题?我发现的所有解决方案都与 Android.Webkit 相关,而不是 Xamarin.Form

【问题讨论】:

    标签: webview xamarin.forms


    【解决方案1】:

    你添加了权限?

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    

    【讨论】:

    • 是的。添加了所有互联网权限。
    • http改https
    • 其实网站还没有证书。我意识到这个错误只发生在某些手机上。其他一些手机工作正常。在互联网上搜索他们说这可能与 jsBridge 和 js 集成有关。也许在某些手机上,默认情况下没有启用 js。如何使用 xamarin.form.view 更改此默认设置?
    • 你用 WebView CustomRenderer 改变
    • webView.Settings.JavaScriptEnabled = true;
    【解决方案2】:

    所以我设法让它工作。问题不在 WebView 上,而在 HybridWebView 上。拯救我的是官方 Xamarin 论坛上的this post。 解决方案非常简单。我只需要在“OnElementChanged”函数上添加以下行:

    webView.LayoutParameters = new global::Android.Widget.AbsoluteLayout.LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent, 0, 0);
    

    【讨论】:

      猜你喜欢
      • 2019-06-17
      • 2017-11-11
      • 2015-12-21
      • 2018-09-06
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      相关资源
      最近更新 更多