0
WebView用のカスタムレンダラーを作成しようとしています。唯一の問題は、XamarinがAndroid.Webkit.WebViewを見つけることができないことです。Xamarin - Android.Webkitにアクセスできません
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));
}
}
}
私たちは、「型または名前空間名 『のWebkitは』 `[AppNameは] .Android名前空間に存在しない」「Android.Webkitを使用して」はエラーで満たされています。アセンブリの参照がありませんか?
アプリの名前空間の内側に探しているようですが、それは問題のようです。しかし、私たちはそれをどのように解決するかについては考えていません。
ご協力いただければ幸いです。
おかげでジェイソンを定義することができます!あなたはそれを修正した。答えはまだ明らかに受け入れることができませんが、うまく受け入れられません。ありがとう! – Max