0

我有一个 angular/ionic 网站,其中包含注册、登录和仪表板页面。我想用相同的代码库构建一个 android & ios 应用程序。

当用户从 Play 商店下载应用程序时,如果我添加新页面/对现有页面进行更改,我必须提交应用程序以供审核,然后它将显示更新选项。此外,用户可能不会更新应用程序。我想在准备好更新后立即向用户显示最新的更改。

为此,我遵循了以下步骤:

1.我已经构建并部署了一个网络应用程序(没有本机代码)。让我们称之为 xyz.com

2.我为APK文件创建了一个新的离子项目。我用 src=xyz.com 放置了一个 iframe

当我构建一个新项目的 APK 时,由于 iframe 标签,我可以看到加载了完整的 Web 应用程序。每当我对主 Web 应用程序项目进行更改时,在部署到 xyz.com 后,只需重新打开移动应用程序,我就可以看到最新的更改。

3.我必须在用户登录时阅读OTP。因此,在 Web 应用程序中验证用户凭据后,下一步就是输入 OTP。现在我已将事件从网络应用程序发送到父窗口(移动应用程序),如下所示: window.parent.postMessage('ReadSMS','*')

在移动应用程序中,我监听了加载到 iframe 中的网站的事件,如下所示: window.addEventListener('message', handleMessage, false);

 function handleMessage(event) {  
    if(event.data === 'ReadSMS'){
       // Start native plugin cordova-plugin-sms-receive to read incoming sms
       // After reading the SMS it is sent to the web app(in iframe) 
       myIframe.contentWindow.postMessage('SMSResult', '*',{OTP:otpfromsms});
    }
 }

在 Web 应用程序中,我侦听从移动应用程序发送的事件并在输入框中自动填充 OTP。

使用上述 iframe 方法,用户无需从 Play 商店更新移动应用即可使用新页面/错误修复。

由于我使用的原生插件非常少,而且它们不会经常更改。如果我进行任何本机代码更改,那么用户必须从 Play 商店更新应用程序,我可以接受。

我们有一个名为 Ionic Appflow 的工具,它具有实时更新功能,可让您远程实时更新应用程序的 UI 和业务逻辑。将 HTML、JS 和 CSS 更新直接推送给您的用户,无需通过应用商店即可立即修复错误并发布新功能。

ionic Appflows 是一种付费工具,我们买不起。但是,我可以仅使用 iframe 和窗口消息事件来实现实时更新功能和本机功能。

我采取的方法有什么缺点吗?在获得批准在 android play store 和 ios app store 中列出我的移动应用程序时会出现问题吗?

有人可以告诉我我所遵循的方法的缺点。

谢谢你

4

0 回答 0