Html 如何创建相互链接的xamarin页面?
我试图用HTML在Xamarin中创建3个页面,它们如何链接在一起? 我的主要活动是: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
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