C# Webview Html按钮调用Android运行函数或SetContentView

C# Webview Html按钮调用Android运行函数或SetContentView,c#,android,xamarin,C#,Android,Xamarin,基本上,我希望能够在webview中单击一个按钮,它可以做两件事 更改我的SetContentView 运行我已经在Android中制作的照相机例程(我想运行我在Android中制作的Android代码) 目前,我找到的所有源代码似乎都与打开文件选择器有关,但我只希望能够运行我在Android中制作的摄像头代码,或者更改我的SetContentView,例如SetContentView(Resource.Layout.Menu2) 问题是使用JavaScript,我发现它不允许我执行SetCon

基本上,我希望能够在webview中单击一个按钮,它可以做两件事

  • 更改我的SetContentView
  • 运行我已经在Android中制作的照相机例程(我想运行我在Android中制作的Android代码)
  • 目前,我找到的所有源代码似乎都与打开文件选择器有关,但我只希望能够运行我在Android中制作的摄像头代码,或者更改我的SetContentView,例如SetContentView(Resource.Layout.Menu2)

    问题是使用JavaScript,我发现它不允许我执行SetContentView(Resource.Layout.Menu2)或MainActivity之外的任何调用

    我真的希望有人能帮忙

    问题是使用JavaScript,我发现它不允许我执行SetContentView(Resource.Layout.Menu2)或MainActivity之外的任何调用

    问题是需要在UI线程上执行
    SetContentView
    。因此,您需要使用:

    public class MyJSInterface:Java.Lang.Object
    {
        Activity context;
        public MyJSInterface(Activity c)
        {
            context = c;
        }
        [Export]
        [JavascriptInterface]
        public void MyCallback()
        {
            //run the SetContentView on the UI Thread
            context.RunOnUiThread(() => {
                context.SetContentView(Resource.Layout.NewLayout);
            });
        }
    }
    

    这个网站是关于提问的。你不必为寻求帮助而道歉。你应该直截了当地说。我们还鼓励您以已经尝试过的代码段的形式提供更多的上下文。非常感谢你!这正是我需要的,谢谢你,先生!如果答案是你想要的。你能把它标为答案:D吗