【问题标题】:Create an app with web interface on mobile OS using Xamarin.Forms使用 Xamarin.Forms 在移动操作系统上创建具有 Web 界面的应用
【发布时间】:2016-10-11 14:29:10
【问题描述】:

是否可以使用 Xamarin.Forms 创建具有基于 Web 的界面的跨平台移动应用程序?

这个想法是使用 C# Xamarin 代码隐藏和基于 Web 的 UI 创建一个移动应用程序。

我知道可以使用 Android WebView 从 javascript 调用 Java 代码。问题是是否有任何通用技术可以绑定 Xamarin.Forms WebView(或其他 Web 视图控件)和 C# 代码隐藏以进行跨平台开发(Android、IOS 和 Windows)?

【问题讨论】:

  • 这实际上取决于您需要访问多少无法在 PCL 中直接使用的特定于平台的功能——如果很多,那么您最终可能会经常使用 DependencyService。我认为在这里更好地阐述你想要对你的项目做些什么会有所帮助。
  • 我没有明白评论的重点。直截了当地说:我有一个 UI - 带有 javascript 的 HTML 页面,我想直接从 javascript 调用 C#(Xamarin 跨平台)代码(就像只在 android 上从 javascript 调用 java 代码)。所以问题是——有可能吗?

标签: c# webview xamarin.ios cross-platform xamarin.forms


【解决方案1】:

是的,有。为您的 webview 创建一个自定义渲染器,向 Navigating 事件处理程序添加一个函数,并在该事件中检查您的指标的 url:

public class CustomWebView : WebView
{
    public CustomWebView()
    {
        Navigating += OnShouldLoad;
    }

    private void OnShouldLoad(object sender, WebNavigatingEventArgs e)
    {
        if (!e.Url.StartsWith("runcode") || !e.Url.Contains(":"))
            return;
        var urlInfo = e.Url.Split(':');
        switch (urlInfo[1])
        {

这假设 javascript 将以“runco​​de:Command”的形式发送一个 url,其中 Command 表示您要执行的操作。

【讨论】:

    【解决方案2】:

    终于得到了构建可以调用C#函数的WebView的说明。

    第一个常见的解释是official guide for xamarin.forms。 对于此类 WebView,这里是 GitHub project

    【讨论】:

      猜你喜欢
      • 2017-12-06
      • 1970-01-01
      • 2017-08-06
      • 2018-03-31
      • 2014-04-22
      • 2021-10-27
      • 2021-08-06
      • 1970-01-01
      • 2013-11-26
      相关资源
      最近更新 更多