【问题标题】:Are IOS & Android Apps with Webview Only Considered Hybrid, or Web Apps?带有 Webview 的 IOS 和 Android 应用程序是否仅被视为混合应用程序或 Web 应用程序?
【发布时间】:2016-11-04 14:18:57
【问题描述】:

我的困惑是,用 Java 或 Swift 创建的应用程序是否仅具有 web 视图被视为混合应用程序或 Web 应用程序。我知道 Web 应用程序几乎完全使用网络,但如果它是通过 Java Webview 的 Web 视图,它真的被认为是 Web 应用程序还是混合应用程序,因为它有可能同时使用本机和 Web 应用程序功能?我对这个特定的定义有不同的定义。

Google 是这样评价网络应用的:

在 Android 上交付应用程序基本上有两种方式:作为客户端应用程序(使用 Android SDK 开发并安装在 APK 中的用户设备上)或作为 Web 应用程序(使用Web 标准并通过 Web 浏览器访问 - 无需在用户设备上安装任何内容)。 https://developer.android.com/guide/webapps/index.html

Apple 是这样评价网络应用的:

Web 应用程序的外观和行为方式与本机应用程序类似——例如,它被缩放以适应 iOS 上的整个屏幕。 您可以进一步为 iOS 上的 Safari 定制您的 Web 应用程序,方法是在用户将其添加到主屏幕时使其看起来像一个本机应用程序。您可以通过使用被忽略的 iOS 设置来做到这一点其他平台。

https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

为什么这对我很重要?为什么我要费心去问? 在谈论我正在创建的新应用程序的未来开发时,我需要向人们解释这三者之间的区别和重要性。我是应用程序世界的新手,不太了解对此的共识,我想在解释时听起来很能干。我认为 Java 或 Swift 制作的带有 Webview 的应用程序只是一个 Web 应用程序,而不是一个混合应用程序。但如果添加更多,它可能会成为一个混合应用程序。但是我可以从一开始就看到它是一个混合应用程序。

【问题讨论】:

    标签: java android ios web-applications webview


    【解决方案1】:

    由于我一直在研究它,我可以分享我对这个主题的理解:

    混合应用程序:这些应用程序使用 HTML5、CSS 等 Web 技术开发,通常使用 JavaScript 进行编程。接下来,为了让他们能够使用 Google Play 商店或 App Store 进行分发,他们使用移动框架构建,例如 PhoneGapCordova。这导致为 android 生成 apk 文件和为 iOS 生成 ipa。然后可以通过 Google Play 商店或 App Store 部署和分发这些文件。

    所以,它有两全其美:

    1. android 和 ios 的代码库相同(因为它们是使用 HTML/CSS/JS 开发的)和 2. 使用 Google Play 商店或 App Store 的原生应用程序分发模型。 因此得名 Hybrid。

    Web 应用程序:这些应用程序本质上是通过 Web 浏览器访问的 - 无需在用户设备上安装 apkipa 文件之类的东西。这些不是使用 Google Play 商店或 Apple Store 分发的。相反,可以使用设备的 Web 浏览器和适当的URLs 访问

    关于WebView 它是操作系统提供的小部件,允许应用在应用内显示网页。

    因此,如果您使用标准 Android SDK 开发 Android 应用程序,但它只使用 WebView,则它被视为本机应用程序(而不是混合或网络应用程序) 因为它使用的是 Native SDK 组件(WebView)。此外,它将通过 Google Play 商店或 App Store 分发。

    【讨论】:

    • 在混合应用程序中,html 和 JavaScript 代码也捆绑在应用程序可执行文件中,因此可以在没有可用互联网连接的情况下工作(前提是应用程序功能不需要互联网连接)。 Web App 基本上是一个伪装成应用程序的网页,因此每次启动时都会从 Web 下载。
    • @fishinear 是的,同意!我想混合这个词有点模糊,并不是所有人都把它当作一样的。但是,混合应用程序与 Web 应用程序的区别在于它们的分布和部署方式。正如您所说,网络应用程序伪装成一个应用程序,但混合应用程序是“真实”应用程序,它们存在于用户的设备上,并使用平台特定的应用程序商店下载......
    • 谢谢大家。我感谢 cmets!
    【解决方案2】:

    WEBVIEW介绍

    Webview 允许第 3 方应用在应用内浏览器或从网络中提取的应用屏幕中显示内容。

    Android Webview 是 Android 的一个组件,您可以在其中从本地(资产目录)或网络加载 HTML 页面。

    Android WebView 允许您通过查看 URL 或您自己的 HTML 标记页面将网页转换为您的 Android 应用程序。

    Wep 应用程序

    在您使用 WebApps 的 Android 中,当您不想集成 Android 的任何功能时。

    您完全依赖于您的网页,例如(HTML、CSS、JAVASCRIPT 等)。

    这意味着您的网站和移动应用程序没有区别。

    这是 WebApps 的基本示例.....

    在清单文件中添加这两个权限....

      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.INTERNET" />
    

    activity_web.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <WebView
            android:id="@+id/web"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    
    </RelativeLayout>
    

    网络活动.....

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.webkit.WebView;
    
    public class WebActivity extends AppCompatActivity {
    
        private WebView mWeb;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_web);
    
            mWeb = (WebView) findViewById(R.id.web);
            mWeb.setWebViewClient(new MyBrowser());         
            mWeb.getSettings().setLoadsImagesAutomatically(true);
            mWeb.getSettings().setJavaScriptEnabled(true);     
            mWeb.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
            mWeb.loadUrl("https://www.google.co.in/");
    
        }
    
        @Override
        public void onBackPressed() {          //this is use for the accessing or impleament back button
            if (mWeb.canGoBack())
                mWeb.goBack();
            else
                super.onBackPressed();
        }
    }
    

    我的浏览器.....

    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    
    public class MyBrowser extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
    

    混合应用

    在混合应用中,我们只能实现网页的特定工作。

    混合应用的优势....

    用户界面更吸引人......

    在离线模式下工作............

    获取用户更多信息(如移动信息)。

    还有更多关于用法........

    文件存储(如:- 图像、视频等)............

    在混合应用中,我们实现了一些特定的页面,例如...

    支付网关......

    我们自己的广告(它需要大量内存来存储图像和 android中的视频)............

    还有更多……

    这就是我所知道的关于 WEBVIEW ........

    享受编码............

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 2013-12-22
      相关资源
      最近更新 更多