xamarin - 是否可以使用 Xamarin.Essetianls.Browser 打开嵌入的 HTML 文件
问题描述
需要在 Xamarin Native(不是 Xamarin.Forms)中呈现相当大的 T&C 嵌入文档。Xamarin.Essetianls.Broswser.OpenAsync("url") 非常适合网站页面,但出现错误:
The specified URL has an unsupported scheme. Only HTTP and HTTPS URLs are supported.
如果尝试
await Browser.OpenAsync("file://Data/TsAndCs.html")
解决方案
在android中,你可以把你本地的html页面放到Assets文件夹,请注意Build Action到AndroidAsset
.
然后你可以创建一个接口来获取html文件路径。
public interface IBaseUrl
{
string Get();
}
在Android文件夹中实现它。
[assembly: Dependency(typeof(BaseUrl_Android))]
namespace MyWebView.Droid
{
public class BaseUrl_Android : IBaseUrl
{
public BaseUrl_Android()
{
}
public string Get()
{
return "file:///android_asset/";
}
}
}
IOS成就可以参考这个帖子:
注意:如果您想在html页面显示之前进行JS代码和xamarin表单控件的交互,请将此部分代码放到Navigated="MywebView_Navigated"
这是我的本地html。
<!DOCTYPE html>
<html>
<body>
<span id="myfont">This is Local Html</span>
<script type="text/javascript">
function factorial(num) {
if (num === 0 || num === 1)
return 1;
for (var i = num - 1; i >= 1; i--) {
num *= i;
}
return num;
}
</script>
</body>
</html>
这是运行截图。
推荐阅读
- match - NEST 未返回精确搜索的值
- javascript - 如何从浏览器 FETCH 触发浏览器下载?
- regex - 在 number freemaker 模板上添加分隔符
- python-asyncio - 获取 OSError:(地址已在使用中)同时运行在 while 循环中使用 trio-sockets 的函数
- mysql - 从数据库表中显示赔率,就像在博彩网站中一样
- javascript - 倒计时功能不显示 3-2-1 倒计时的最后一个数字
- wordpress - 带有 select2 的 Woocommerce 变体与默认选择冲突
- sql - 使用 TO_DATE 函数后比较 Oracle 中的两个日期
- r - 抖动 geom_line 和 geom_point
- docker - 在 OpenShift 中从容器映像创建项目时权限被拒绝