Xamarin - 无法访问Android.Webkit

时间:2016-10-19 14:17:27

标签: xamarin.android xamarin.forms xamarin-studio

我们正在尝试为WebView创建自定义渲染器。唯一的问题是Xamarin无法找到Android.Webkit.WebView。

using [AppName];
using [AppName].Droid;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
using Mono;
using Android.Webkit;

[assembly: ExportRenderer(typeof(HybridWebView),         typeof(HybridWebViewRenderer))]
namespace [AppName].Droid
{
public class HybridWebViewRenderer : ViewRenderer<HybridWebView,     Android.Webkit.WebView>
{
    const string JavaScriptFunction = "function invokeCSharpAction(data){jsBridge.invokeAction(data);}";

    protected override void OnElementChanged(ElementChangedEventArgs<HybridWebView> e)
    {
        base.OnElementChanged(e);

        if (Control == null)
        {
            var webView = new Android.Webkit.WebView(Forms.Context);
            webView.Settings.JavaScriptEnabled = true;
            SetNativeControl(webView);
        }
        if (e.OldElement != null)
        {
            Control.RemoveJavascriptInterface("jsBridge");
            var hybridWebView = e.OldElement as HybridWebView;


        }
        if (e.NewElement != null)
        {
            Control.LoadUrl(string.Format("file:///android_asset/Content/{0}", Element.Source));
            InjectJS(JavaScriptFunction);
        }
    }

    void InjectJS(string script)
    {
        if (Control != null)
        {
            Control.LoadUrl(string.Format("javascript: {0}", script));
        }
    }
}

我们'使用Android.Webkit'但遇到错误'类型或命名空间名称'Webkit'在名称空间`[AppName] .Android'中不存在。你错过了装配参考吗?'

似乎它正在我们的app命名空间中寻找它,这似乎可能是问题。但我们不知道如何解决它。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

听起来它与您项目中的另一个Android命名空间混淆了。尝试使用全局命名空间

global::Android.Webkit.WebView

您还可以定义别名

using web = global::Android.Webkit.WebView;