【问题标题】:Can Cordova be a wrapper for a Xamarin app?Cordova 可以成为 Xamarin 应用程序的包装器吗?
【发布时间】:2015-03-10 05:21:34
【问题描述】:

我支持使用 Xamarin 编写的旧版 Android 应用。该 Xamarin 应用程序将被 Cordova 应用程序取代。在过渡期间,我需要一个支持两者的解决方案。我的高级想法是,在用户登录应用程序后,我会将他们发送到适用于他们的位置(旧版 Xamarin 或新版 Cordova)。该应用程序将有效地包含两个应用程序的代码库。

这种事情在 Cordova 中是否可行 - 即我可以在 Cordova 中“包装”一个现有的 Xamarin 应用程序吗?

谢谢。

【问题讨论】:

    标签: android cordova xamarin


    【解决方案1】:

    简短的回答是“不”。 Xamarin 生成可执行二进制文件,而不是 HTML 或 JS 文件的集合,因此 Cordova/PhoneGap 无法“包装”它。话虽如此,您可能可以做几件事:

    1) 让您的 Cordova 应用通过应用 url 打开原始 Xamarin.Android 应用: Android Custom URL to open App like in iOS

    2) 在您的旧 Xamarin.Android 应用程序中创建一个 WebView,用于加载您的 Cordova/PhoneGap 将具有的 HTML/JS。基本上,在某种程度上,您将使用 Xamarin 重新创建 Cordova 的功能。 http://developer.xamarin.com/recipes/android/controls/webview/call_csharp_from_javascript/ http://developer.xamarin.com/recipes/android/controls/webview/load_a_web_page/ http://developer.xamarin.com/recipes/android/controls/webview/load_local_content/

    【讨论】:

    • 他在问您是否可以“包装” Xamarin.Android 应用程序,而您不能这样做。正如有人在另一个答案中提到的,如果他想为 Cordova Android/Java SDK 创建绑定,他可以这样做,但 Xamarin.Android 应用程序仍然是主应用程序,而不是 Cordova 应用程序。
    • 另外,我只是建议应用链接作为实现此目的的一种方式:“用户登录应用后,我会将他们发送到适用于他们的位置(旧版 Xamarin 或新科尔多瓦)”
    • 感谢@BenBishop 和 jcesarmobile。当然总结了我的选择。作为一种过渡状态,我认为将 WebView 嵌入 Xamarin.Android 应用程序的简单性是要走的路。在这个阶段,将不再需要访问 Cordova API。一旦过渡结束,我认为没有任何 Xamarin 的直接 Cordova 的目标状态就是我最终的目标。到那时可能需要访问这些 API,但不是现在。再次感谢您的意见。
    【解决方案2】:

    我找到了有关在单点触控应用上使用 phonegap 的链接:

    http://scott.blomqui.st/2012/08/embedding-cordova-phonegap-in-monotouch-apps/

    【讨论】:

    • 查看您引用的链接,我相信要将 Cordova 嵌入到他的旧版 Xamarin.Android 应用程序中,他必须为 Cordova 安装本机库。做一些谷歌搜索,看起来这些库没有 Xamarin/C# 版本,只有 Java。
    • @BenBishop,您可以创建与 JAR 文件的 Xamarin 绑定:developer.xamarin.com/guides/android/advanced_topics/…
    • 我知道能够为 Java JAR 创建绑定。我犹豫要不要提出它,因为它是一种先进的技术,我不确定这需要多长时间,但我离题了。好点子。
    猜你喜欢
    • 2014-09-04
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    相关资源
    最近更新 更多