Html 如何创建相互链接的xamarin页面?

Html 如何创建相互链接的xamarin页面?,html,razor,xamarin.android,Html,Razor,Xamarin.android,我试图用HTML在Xamarin中创建3个页面,它们如何链接在一起? 我的主要活动是: public class MainActivity : Activity { protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Set our view from the "main" layout resour

我试图用HTML在Xamarin中创建3个页面,它们如何链接在一起? 我的主要活动是:

public class MainActivity : Activity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.Main);
        WebView webView1 = FindViewById<WebView>(Resource.Id.webView1);
        webView1.Settings.JavaScriptEnabled = true;
        webView1.Settings.CacheMode = CacheModes.NoCache;
        webView1.Settings.SetRenderPriority(WebSettings.RenderPriority.High);

        HIP.Assets.mainPage html = new HIP.Assets.mainPage();
        webView1.LoadDataWithBaseURL("file:///android_asset/", html.GenerateString(), "text/html", "utf-8", null);

        HIP.Assets.page1 p1 = new HIP.Assets.page1();
        webView1.LoadDataWithBaseURL("file:///android_asset/", p1.GenerateString(), "text/html", "utf-8", null);

        HIP.Assets.page2 p2 = new HIP.Assets.page2();
        webView1.LoadDataWithBaseURL("file:///android_asset/", p2.GenerateString(), "text/html", "utf-8", null);


    }
}
公共类main活动:活动
{
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
//从“主”布局资源设置视图
SetContentView(Resource.Layout.Main);
WebView webView1=findviewbyd(Resource.Id.webView1);
webView1.Settings.JavaScriptEnabled=true;
webView1.Settings.CacheMode=CacheModes.NoCache;
webView1.Settings.SetRenderPriority(WebSettings.RenderPriority.High);
HIP.Assets.mainPage html=新的HIP.Assets.mainPage();
webView1.LoadDataWithBaseURL(“file:///android_asset/,html.GenerateString(),“text/html”,“utf-8”,null);
HIP.Assets.page1 p1=新的HIP.Assets.page1();
webView1.LoadDataWithBaseURL(“file:///android_asset/,p1.GenerateString(),“text/html”,“utf-8”,null);
HIP.Assets.page2 p2=新的HIP.Assets.page2();
webView1.LoadDataWithBaseURL(“file:///android_asset/,p2.GenerateString(),“text/html”,“utf-8”,null);
}
}
为了链接页面,我在这些页面中使用了razor preprocessed template()和标记:

mainPage.cshtm:

<a href="file:///android_asset/page1.cshtml">page 1</a>

在page1.cshtml中:

<a href="file:///android_asset/page2.cshtml">page 2</a>

那么,如何继续我的计划

如何创建相互链接的xamarin页面

您可以创建一个自定义的
WebViewClient
来过滤
url
,当用户单击本地html链接时,您可以选择使用
WebView
加载此文件

例如:

...
//Use the custom WebViewClient
webView.SetWebViewClient(new MyWebViewClient());
webView.LoadUrl("file:///android_asset/main.html");

public class MyWebViewClient : Android.Webkit.WebViewClient
{
    public override bool ShouldOverrideUrlLoading(WebView view, string url)
    {
        if (url.Equals("file:///android_asset/page2.html"))
        {
            view.LoadUrl(url);
        }
        else
        {
            view.LoadUrl(url);
        }
        return true;
    }
}

实际上,我有超过3页的篇幅,但对于我所说的3页的抽样问题,它超过了3页。 所有cshtml页面中的导航栏和文本。 我有一个文本,在一些页面显示它,并与下一页按钮和上一页按钮,我进入页面。 它与标记一起工作。 有关示例,请参阅此代码,不要忘记所有页面都具有以下结构:

<!DOCTYPE html>
<html >
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <script src="file:///android_asset/Scripts/jquery-1.9.1.js"></script>
    <link href="file:///android_asset/Content/bootstrap-rtl.css" rel="stylesheet" />
    <script src="file:///android_asset/Scripts/bootstrap.js"></script>
</head>
<body>
    <div class="container" style="background-color:#e2dddd">
        <div class="row" style="padding:5px">
            <nav class="navbar navbar-inverse">
                <div class="container">
                    <div class="navbar-header">
                        <a href="file:///android_asset/Ethicshtml.cshtml" class="navbar-brand">Home</a>
                        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#mainNavBar">
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                        </button>
                    </div>
                    <ul class="collapse nav navbar-nav" id="mainNavBar">
                        <li><a href="file:///android_asset/ProfessionalMain.cshtml">professional</a></li>
                        <li><a href="file:///android_asset/MoralMain.cshtml">moral</a></li>
                        <li><a href="file:///android_asset/SecurityMain.cshtml">security</a></li>
                        <li class="dropdown">
                        </li>
                    </ul>
                    <ul class="nav navbar-nav navbar-right"></ul>
                </div>
            </nav>
        </div>
        <div class="row  text-center" style="padding:0px">
            <div class="col-sm-8" style="background-color:white;height:50px"><a href="file:///android_asset/Moral2.cshtml" class="btn btn-primary btn-lg">next page</a> <a href="file:///android_asset/Moral.cshtml" class="btn btn-primary btn-lg">previous page</a> <a href="file:///android_asset/Moral.cshtml" class="btn btn-primary btn-lg">moral page</a> </div>
            <div dir="rtl" class="col-sm-8" style="background-color:white;height:400px;text-align:justify">
              my text is here
            </div>
        </div>
    </div>
</body>
</html>

指数
    我的文本在这里
    根据你的评论,这是我的MainActivity.cs

    using Android;
    using Android.App;
    using Android.OS;
    using Android.Webkit;
    namespace HIPethics
    {
        [Activity(Label = "HIP", MainLauncher = true)]
        public class MainActivity : Activity
        {
            protected override void OnCreate(Bundle savedInstanceState)
            {
                base.OnCreate(savedInstanceState);
    
                // Set our view from the "main" layout resource
                SetContentView(Resource.Layout.Main);
                var webView1 = FindViewById<WebView>(Resource.Id.webView1);
                webView1.Settings.JavaScriptEnabled = true;
                webView1.Settings.CacheMode = CacheModes.NoCache;
                webView1.Settings.SetRenderPriority(WebSettings.RenderPriority.High);
    
    
                HIPethics.Assets.Ethicshtml html = new HIPethics.Assets.Ethicshtml();
                webView1.LoadDataWithBaseURL("file:///android_asset/", html.GenerateString(), "text/html", "utf-8", null);
    
                webView1.SetWebViewClient(new MyWebViewClient());
                webView1.LoadUrl("file:///android_asset/Ethicshtml.cshtml");
            }
        }
    
        public class MyWebViewClient : Android.Webkit.WebViewClient
        {
            public override bool ShouldOverrideUrlLoading(WebView view, string url)
            {
                if (url.Equals("file:///android_asset/MoralMain.cshtml"))
                {
                    HIPethics.Assets.MoralMain Moralmain = new HIPethics.Assets.Moralmain();
                    view.LoadDataWithBaseURL("file:///android_asset/", Moralmain.GenerateString(), "text/html", "utf-8", null);
    
                }
                if (url.Equals("file:///android_asset/ProfessionalMain.cshtml"))
                {
                    HIPethics.Assets.ProfessionalMain professionalMain = new HIPethics.Assets.ProfessionalMain();
                    view.LoadDataWithBaseURL("file:///android_asset/", professionalMain.GenerateString(), "text/html", "utf-8", null);
                }
                if (url.Equals("file:///android_asset/ProfessionalPage1.cshtml"))
                {
                    HIPethics.Assets.ProfessionalPage1 ProfessionalPage1 = new HIPethics.Assets.ProfessionalPage1();
                    view.LoadDataWithBaseURL("file:///android_asset/", ProfessionalPage1.GenerateString(), "text/html", "utf-8", null);
                }
                if (url.Equals("file:///android_asset/ProfessionalPage2.cshtml"))
                {
                    HIPethics.Assets.ProfessionalPage2 ProfessionalPage2 = new HIPethics.Assets.ProfessionalPage2();
                    view.LoadDataWithBaseURL("file:///android_asset/", ProfessionalPage2.GenerateString(), "text/html", "utf-8", null);
                }
                if (url.Equals("file:///android_asset/SecurityMain.cshtml"))
                {
                    HIPethics.Assets.SecurityMain securityMain = new HIPethics.Assets.SecurityMain();
                    view.LoadDataWithBaseURL("file:///android_asset/", securityMain.GenerateString(), "text/html", "utf-8", null);
                }
                if (url.Equals("file:///android_asset/SecurityPage1.cshtml"))
                {
                    HIPethics.Assets.SecurityPage1 SecurityPage1 = new HIPethics.Assets.SecurityPage1();
                    view.LoadDataWithBaseURL("file:///android_asset/", SecurityPage1.GenerateString(), "text/html", "utf-8", null);
                }
                if (url.Equals("file:///android_asset/SecurityPage2.cshtml"))
                {
                    HIPethics.Assets.SecurityPage2 SecurityPage1 = new HIPethics.Assets.SecurityPage2();
                    view.LoadDataWithBaseURL("file:///android_asset/", SecurityPage2.GenerateString(), "text/html", "utf-8", null);
                }
                if (url.Equals("file:///android_asset/MoralPage1.cshtml"))
                {
                    HIPethics.Assets.MoralPage1 moralPage1 = new HIPethics.Assets.MoralPage1();
                    view.LoadDataWithBaseURL("file:///android_asset/", moralPage1.GenerateString(), "text/html", "utf-8", null);
                }
                if (url.Equals("file:///android_asset/MoralPage2.cshtml"))
                {
                    HIPethics.Assets.MoralPage2 moralPage2 = new HIPethics.Assets.MoralPage2();
                    view.LoadDataWithBaseURL("file:///android_asset/", moralPage2.GenerateString(), "text/html", "utf-8", null);
    
                    return true;
                }
            }
        }
    }
    
    使用Android;
    使用Android.App;
    使用Android.OS;
    使用Android.Webkit;
    名称空间伦理
    {
    [活动(Label=“HIP”,MainLauncher=true)]
    公共课活动:活动
    {
    创建时受保护的覆盖无效(Bundle savedInstanceState)
    {
    base.OnCreate(savedInstanceState);
    //从“主”布局资源设置视图
    SetContentView(Resource.Layout.Main);
    var webView1=findviewbyd(Resource.Id.webView1);
    webView1.Settings.JavaScriptEnabled=true;
    webView1.Settings.CacheMode=CacheModes.NoCache;
    webView1.Settings.SetRenderPriority(WebSettings.RenderPriority.High);
    hipeethics.Assets.Ethicshtml=新的hipeethics.Assets.Ethicshtml();
    webView1.LoadDataWithBaseURL(“file:///android_asset/,html.GenerateString(),“text/html”,“utf-8”,null);
    SetWebViewClient(新的MyWebViewClient());
    webView1.LoadUrl(“file:///android_asset/Ethicshtml.cshtml");
    }
    }
    公共类MyWebViewClient:Android.Webkit.WebViewClient
    {
    公共重写bool ShouldOverrideUrlLoading(WebView视图,字符串url)
    {
    如果(url.Equals)(“file:///android_asset/MoralMain.cshtml"))
    {
    HIPethics.Assets.MoralMain MoralMain=新的HIPethics.Assets.MoralMain();
    view.LoadDataWithBaseURL(“file:///android_asset/,Moralmain.GenerateString(),“text/html”,“utf-8”,null);
    }
    如果(url.Equals)(“file:///android_asset/ProfessionalMain.cshtml"))
    {
    HIPethics.Assets.ProfessionalMain ProfessionalMain=新的HIPethics.Assets.ProfessionalMain();
    view.LoadDataWithBaseURL(“file:///android_asset/,professionalMain.GenerateString(),“text/html”,“utf-8”,null);
    }
    如果(url.Equals)(“file:///android_asset/ProfessionalPage1.cshtml"))
    {
    HIPethics.Assets.ProfessionalPage1 ProfessionalPage1=新的HIPethics.Assets.ProfessionalPage1();
    view.LoadDataWithBaseURL(“file:///android_asset/,ProfessionalPage1.GenerateString(),“text/html”,“utf-8”,null);
    }
    如果(url.Equals)(“file:///android_asset/ProfessionalPage2.cshtml"))
    {
    HIPethics.Assets.ProfessionalPage2 ProfessionalPage2=新的HIPethics.Assets.ProfessionalPage2();
    view.LoadDataWithBaseURL(“file:///android_asset/,ProfessionalPage2.GenerateString(),“text/html”,“utf-8”,null);
    }
    如果(url.Equals)(“file:///android_asset/SecurityMain.cshtml"))
    {
    HIPethics.Assets.SecurityMain SecurityMain=新的HIPethics.Assets.SecurityMain();
    view.LoadDataWithBaseURL(“file:///android_asset/,securityMain.GenerateString(),“text/html”,“utf-8”,null);
    }
    如果(url.Equals)(“file:///android_asset/SecurityPage1.cshtml"))
    {
    HIPethics.Assets.SecurityPage1 SecurityPage1=新的HIPethics.Assets.SecurityPage1();
    view.LoadDataWithB