将 Phonegap Cordova 移动应用代码重新用于 Web 应用程序

2024-04-15

我们有一个使用 Ionic 和 Rails 作为 API 开发的移动应用程序。现在,我们计划在 Web 应用程序中重用 PhoneGap 代码以及 Ionic 标签。我仍然不完全确定这是否可能。有人尝试过这个吗?我发现将 Ionic 代码(位于 www/ 内)放入 Lamp 服务器中可以使其在浏览器中打开(我在本地尝试过)。这是正确的方法吗?有人可以建议我一个更好的方法吗?相同的指南或链接也非常感谢。


是的,我开发了一些基于 Ionic Framework 的混合应用程序以及相应的 Web 应用程序,重用了高达 90% 的代码库。

webapp 项目与混合应用程序项目共享几乎所有 Angular 模块,特别是服务和指令。 一些功能和特定于移动设备的功能包装在与混合项目和 Web 应用程序项目不同的模块中。

例如我有一个包装器.ionic.js用于混合(离子)项目,其中包含例如这个工厂:

angular.module('components.wrapper', [])
.factory('$myPopup', ['$ionicPopup', function($ionicPopup) {
    var scope = {};

    scope.alert = function (params) {
        return $ionicPopup.alert(params);
    }

    scope.show = function (params) {
        return $ionicPopup.show(params);
    }

    scope.confirm = function (params) {
        return $ionicPopup.confirm(params);
    }

    return scope;
}])
...

webapp 项目的对应项是包装器.bootstrap.js(基于https://angular-ui.github.io https://angular-ui.github.io):

angular.module('components.wrapper', [])
.factory('$myPopup', ['$modal', function($modal) {
    var scope = {};

    scope.animation = true;
    scope.size = 'sm';          // values: '', 'lg', 'sm'

    scope.alert = function (params) {
        var alert = $modal.open({
            animation: scope.animation,
            size: scope.size,
            backdrop: true,
            template:
              '<div class="modal-header"><h4 class="modal-title '+params.cssClass+'">'+params.title+'</h4></div>' +
              '<div class="modal-body '+params.cssClass+'">' +params.template + '</div>' +
              '<div class="modal-footer"><button class="button button-positive" type="button" ng-click="cancel()">Ok</button>' +
              '</div>',
            controller: ['$scope', '$modalInstance', function ($scope, $modalInstance) {
                $scope.cancel = function () {
                    $modalInstance.dismiss('cancel');
                };
            }],
            controllerAs: 'ctrl'
        });
        return alert;
    }
...

所以你可以在混合和网络应用程序中使用该服务$myPopup.

对于 HTML(索引和视图模板),情况更为复杂。许多 Ionic 标签(指令和 CSS)适合移动设备,但并未针对可以从桌面上看到的 Web 应用程序进行优化。 在这里,我使用了 Ionic 标签和 UI Boostrap,但更喜欢第二个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Phonegap Cordova 移动应用代码重新用于 Web 应用程序 的相关文章

  • PhoneGap:在 Safari 中打开外部 URL

    我刚刚升级到 PhoneGap 1 6 1 无法再在 Safari 中打开外部 URL 在此版本之前 我对 AppDelegate m 进行了如下修补 BOOL webView UIWebView theWebView shouldStar
  • 使用 cordova 工具集构建应用程序时出错

    我正在使用 Visual Studio 2017 社区版 并且只需使用 vs 文档中的步骤即可使用 macincloud 服务进行远程构建 我基本上遇到了以下明确的错误 来自构建服务器的远程构建错误https xxxx macincloud
  • 如何在 ionic 5 中将相机图像转换为 blob?

    我想发布多部分表单数据 为此 我们可以这样做 let formData new FormData formData append myfile your blob this http post url formData 但我不知道如何将相机
  • 如何在 Cordova 中为 ios 启动屏幕使用单个图像

    我有一个简单的 Cordova 应用程序 带有启动屏幕 在 config xml 我有这个
  • 如何将此脚本安装到 PhoneGap for iOS 中

    我不了解任何 Objective C 这就是我使用 PhoneGap 来创建 iOS 应用程序的原因 iOS 版 PhoneGap 存在一个很大的缺陷 键盘上经常有表单助手 下一个 上一个 和 完成 按钮 网上关于如何摆脱这个的信息很少 所
  • 如何在 iOS 上使用 PhoneGap 检测是否拨打电话

    在 iOS 上使用电话提示意图时 例如 window location telprompt phoneNumber 系统会提示用户拨打该号码或取消 有没有办法知道用户执行了这两个操作中的哪一个 查看 PhoneGap 文档 startcal
  • 添加媒体插件后 Ionic Cordova IOS 构建失败

    我正在使用 Ionic Framework 和 Cordova 开发一个移动应用程序 我尝试添加 Cordova 媒体插件 但它无法为我构建 我什至尝试创建一个新的启动选项卡项目 然后添加媒体插件 如图所示 由于添加了媒体插件 该项目无法编
  • PhoneGap - 构建错误

    我对phonegap非常陌生 并尝试通过输入phonegap上描述的命令来创建一个简单的测试应用程序install http phonegap com install webpage 不幸的是 我在命令行中收到以下错误 BUILD FAIL
  • cordova 添加平台 - 执行命令“ant”时出错

    在一开始的时候 我知道这个问题已经被问了太多次了 我检查了所有的答案 尝试了我发现的每一种组合和每一种解决方案 但到目前为止没有任何效果对我有用 问题 我已经成功安装了cordova 从官方网站下载了它 并且我一直在遵循指南 我已经添加wp
  • 删除 ios 和 android 的 PhoneGap 中的闪屏

    我正在尝试在 ios 和 android 的phonegap应用程序中完全删除启动屏幕 这navigator hide 函数仅在加载 html 页面后才起作用 但我需要在此之前删除启动屏幕 请告诉我是否有任何选项可以执行此操作 Cordov
  • process.env.IONIC_ENV 正在返回 dev

    process env IONIC ENV正在返回dev always 这是我使用过的脚本 ionic serve prod But process env IONIC ENV正在返回dev代替prod 有什么想法吗 Thanks None
  • Android 上的 Ionic Cordova 相机插件错误

    科尔多瓦版本是 6 3 0 Cordova Android版本是 5 0 0 相机插件版本 cordova plugin camera 2 2 0 相机 我的代码适用于 Android 5 0 和 Android 6 0 的多种设备 但不适
  • cordova.js 导致引用错误“未定义需求”

    我想用恩科尔多瓦检测设备的网络状态 然而 一旦我包括科尔多瓦 js我收到一个错误 未捕获的引用错误 未定义 require cordova js 23 我已经安装并成功运行Node js and Cordova 我已经下载并安装了恩科尔多瓦
  • 跨 webView 和 CordovaWebView android 共享 localStorage

    我正在尝试在 webView 和 CordovaWebView 之间共享活动数据 CordovaWebView 当然使用 webView 这就是为什么我不明白为什么存储在我的 PhoneGap 应用程序的 localStorage 中的数据
  • 如何将 ThreeJS 与 PhoneGap 一起使用?

    这个探索是非常自我描述的 我已经用一个简单的 3D 立方体进行了测试 它在浏览器中运行良好 但只在模拟器中显示空白页面 有人说 Threejs 不能与 PhoneGap 一起使用 但也有人说他们使用过并且工作正常 在 Android 中 您
  • 如何在phonegap应用程序中使用存储在localStorage中的json feed?

    这就是我正在做的 向我的网络服务器发出请求 响应采用 json 格式 使用 jquery 模板在我的应用程序中呈现回调数据 非常简单 就像魅力一样 问题是 我想在本地存储一些数据 这样我的应用程序就不必每次都从服务器获取它 3g 很慢 每笔
  • 已执行最大重试次数。上传ipa问题

    我使用 build phonegap com 构建了 ipa 我试图将此 ipa 卸载到商店 但收到此错误 我解决了这个问题 安装xCode 4 并使用该xCode 4的版本应用程序加载器 这个问题得到解决
  • 在 Angular 5 中,如何从父组件访问动态添加的子组件?

    我正在开发一个 Ionic Angular 5 项目 我需要动态加载一些组件 继动态组件加载器示例 https angular io guide dynamic component loader在 Angular 文档中 我能够成功加载组件
  • 来自 HTML5 的 Phonegap Bonjour/Zeroconf 或 Websocket IP 发现

    我正在尝试实现一个 Phonegap HTML5 应用程序 该应用程序连接到 Websocket 服务器 在嵌入式设备中运行 也有 Bonjour 服务 以在家庭网络内交换数据 我想知道使用 Phonegap 检测服务器 IP 的最佳方法
  • 如何使用phonegap在iOS应用程序中防止键盘推送webview

    当屏幕底部的输入字段获得焦点时 键盘会向上推我的网络视图 并且页面的上部不再可见 我想防止键盘推高网络视图 有人有主意吗 对焦 设置window scrollTo 0 0 这可以防止键盘完全推高 webview input on focus

随机推荐

  • 步数计数器不会重置步数

    我可以使用以下命令开始和停止记录步骤Sensor TYPE STEP COUNTER通过注册和取消注册侦听器 但是 通过传递给我的应用程序的实际值SensorEvent当应用程序被销毁时 对象不会重置为零 如果我关闭应用程序并重新启动它 或
  • Javascript `this` 对象 == 成员函数中的 `window`

    在我的一些 Javascript 对象中 我发现我的this指针是正确的 这些是new Func type 对象 创建时 但在分配的方法中可能是错误的 function Confused console log checking this
  • 未找到 Emacs shell 命令

    我在 Mac OS X 10 5 8 上工作 我正在努力学习emacs 我对它很陌生 今天尝试从 emacs 中输入 shell 命令 我进入了pdflatex filename 但是 它给了我一个错误说 bin bash pdflatex
  • django 查询所有相关集的过滤?

    class Customer models Model name models CharField max length 200 class CustomerTicket models Model customer models OneTo
  • NSFetchedResultsChangeDelete 未被触发

    以前有人遇到过这个吗 当我选择从 tableView 由 FRC 填充 中删除一行时 应用程序不会崩溃或挂起 它没有任何作用 删除按钮保持选中状态 如果我单击模拟器上的其他位置 删除按钮将取消选择并消失 但单元格永远不会从 UI 中删除 我
  • libTogl 未定义的引用

    我正在尝试安装 netgen 从源代码构建 因此需要 Togl 我通过以下方式安装了它 sudo apt get install libtogl1 libtogl dev 当输入 make 时 我收到以下错误消息 usr lib gcc x
  • #ifdef 与 #if - 作为启用/禁用特定代码部分编译的方法,哪种更好/更安全?

    这可能是一个风格问题 但我们的开发团队存在一些分歧 我想知道是否还有其他人对此事有任何想法 基本上 我们有一些调试打印语句 我们在正常开发期间将其关闭 我个人更喜欢执行以下操作 SomeSourceFile cpp define DEBUG
  • Azure Web 应用程序、PHP 7.4、OCI8(Oracle 即时客户端 12.2.0.1.0)

    我们正在尝试将现有的 PHP 7 4 应用程序从 Windows Server 2012 上运行的内部服务器提升到 Azure Web 应用程序 PHP 应用程序使用 OCI8 连接到 Oracle 数据库 在不启用 OCI8 扩展的情况下
  • 使用 Oracle PL/SQL 存储过程授予其他用户表的权限

    我遇到了执行以下操作的应用程序的问题 PL SQL 包 A 包含应用程序的所有函数 过程 A 由 USER A 拥有 A 在 Oracle 中创建用户帐户 并在这些用户下创建表 A 还必须能够 TRUNCATE INSERT 到用户的表 注
  • 返回 dynamodb 中具有最大排序键的项目

    我正在使用 python 脚本访问 AWS 中的 dynamodb 数据库 我有一个带有哈希键和排序键的表 对于给定的哈希键 我想找到具有小于某个值的最大排序键的项目 我怎样才能做到这一点 或者 有没有办法从给定的键查找前一项 I am n
  • 撇号和 SQL Server FT 搜索

    我在 SQL Server 2005 中设置了 FT 搜索 但我似乎找不到将 Lias 关键字与 Lia s 记录相匹配的方法 我基本上想要的是允许人们在没有撇号的情况下进行搜索 我已经断断续续地解决这个问题有一段时间了 所以任何帮助都将是
  • NSDictionary 中的键和值是有序的吗?

    我的意思是 NSDictionary 中键和值的顺序是否始终与初始化 NSDictionary 时指定的顺序相同 或者如果我真的需要知道键的顺序 我应该更好地维护一个单独的 NSArray 吗 不 他们没有被订购 只要您不从字典中添加或删除
  • Android - 从网络下载图像,保存到应用程序私有位置的内存中,显示列表项

    我想做的是 我希望我的应用程序从互联网下载图像并将其保存到手机内存中应用程序私有的位置 如果列表项没有可用的图像 即无法在 Internet 上找到 我希望显示默认的占位符图像 这是我在 list item row xml 文件中定义为默认
  • Epsilon(ε) 产生式以及 LR(0) 语法和 LL(1) 语法

    在很多地方 例如在这个答案中here https stackoverflow com a 8496838 7571421 我看到有人说 LR 0 语法不能包含 产生式 Also in 维基百科 https en wikipedia org
  • “休息2”是什么意思?

    我总是使用和看到只带有 break 的例子 这是什么意思
  • Laravel Mix 未将vendor.js 转译为es5

    Laravel Mix 似乎没有将vendor js 和manifest js 转译为ES5 它在 iPhone Safari 和 IE 11 上失败 IE DevTools 显示以下错误 而且看起来它仍然具有 ES6 的特性 其他文件似乎
  • C# InputSimulator 包装器 - 如何使用它?

    我想模拟外部程序的键盘点击 我尝试过SendMessage PostMessage SendKeys 但它们不会将密钥发送到某个特定程序 所以我想尝试 SendInput 并且我已经下载了一个很好的包装器发送输入 http msdn mic
  • fromEnum 到Enum 实例?

    data Suit Spade Heart Club Diamond deriving Eq Ord Enum Show data Pip Ace Two Three Four Five Six Seven Eight Nine Ten J
  • 当我添加新代码时,laravel 中出现错误“此缓存存储不支持标记”?

    我尝试在 laravel 中的blade php 中编写代码 但出现错误 我正常的 php 代码是 我在 Blade php 中做的事情如下 uri segment users active php use App Libraries Co
  • 将 Phonegap Cordova 移动应用代码重新用于 Web 应用程序

    我们有一个使用 Ionic 和 Rails 作为 API 开发的移动应用程序 现在 我们计划在 Web 应用程序中重用 PhoneGap 代码以及 Ionic 标签 我仍然不完全确定这是否可能 有人尝试过这个吗 我发现将 Ionic 代码