免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持APP、电脑端、小程序、IOS免签等等

如何把手机网页做得像app

现在越来越多的网站都有了自己的移动端网页,但是将网页转化为app依然是许多企业和互联网人士所感兴趣的话题。因为在手机应用市场推出一款app需要受到审核等限制,而将网页转化为app可以在一定程度上避免这些限制。思路上,将网页转化为app有两种方法:一种是把网页嵌入到app里面,另一种是使用Webview方式打开网页。本文将详细介绍如何将网页转化为app。

一、嵌入方式

这种方式的优点是轻量且开发成本低,这种方式打开网页的效果和手机应用市场中的app效果类似。不过由于使用的是webview打开页面,所以加载速度和用户体验方面可能略逊于纯原生app。以下是具体实现方法:

1. 打开Android Studio,选择新建一个Project,选择Empty Activity项目,项目名称随意,记住包名和项目路径,这两个后面会需要用到。

2. 在res文件夹下建立一个xml文件夹和values文件夹,分别用于保存布局文件和字符串资源文件。

3. 在xml文件夹下新建一个activity_main.xml文件,这个文件用于设定app的界面布局,可以选择使用LinearLayout、RelativeLayout或GridLayout等方式布局,这里我们用LinearLayout为例。

```

android:orientation="vertical" android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/webView"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_weight="1"/>

android:id="@+id/progressBar"

style="?android:attr/progressBarStyleHorizontal"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:max="100"

android:layout_weight="0"/>

```

4. 在values文件夹下新建一个strings.xml文件,这个文件用于保存app中用到的各种字符串资源,包括app名称、网址等。

```

WebApp

https://www.example.com/

```

5. 打开MainActivity.java文件,设定加载网页的Webview,并设定进度条等。

```

public class MainActivity extends AppCompatActivity {

private WebView mWebView;

private ProgressBar mProgressBar;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mWebView = (WebView) findViewById(R.id.webView);

mProgressBar = (ProgressBar) findViewById(R.id.progressBar);

mWebView.getSettings().setJavaScriptEnabled(true);

mWebView.getSettings().setSupportZoom(true);

mWebView.getSettings().setUseWideViewPort(true);

mWebView.getSettings().setLoadWithOverviewMode(true);

mWebView.setInitialScale(100);

mWebView.setWebViewClient(new MyWebViewClient());

mWebView.setWebChromeClient(new MyWebChromeClient());

mWebView.loadUrl(getString(R.string.web_url));

}

private class MyWebViewClient extends WebViewClient {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

}

private class MyWebChromeClient extends WebChromeClient {

@Override

public void onProgressChanged(WebView view, int newProgress) {

mProgressBar.setProgress(newProgress);

if (newProgress >= 100) {

mProgressBar.setVisibility(View.GONE);

} else {

mProgressBar.setVisibility(View.VISIBLE);

}

}

}

}

```

6. 以上就是把网页嵌入app的步骤了。最后,使用Android Studio把项目打包生成apk,就可以在手机上使用此app了。

二、Webview方式

此方式使用的相对较多,主要是因为它具有快速的开发速度并且能够多次迭代升级,但有时候需要进行深度定制。本文以Android为例,以下是具体实现方式:

1. 新建一个Activity、布局文件和Activity对应的Java类(例如MainActivity)。

2. 在activity_main.xml布局文件中加入如下代码:

```

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/webview"

android:layout_width="match_parent"

android:layout_height="match_parent" />

```

3. 在MainActivity类中加入如下代码:

```

public class MainActivity extends AppCompatActivity {

private static final String APP_CACHE_DIRNAME = "/webcache"; // web缓存目录

private WebView mWebView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mWebView = (WebView) findViewById(R.id.webview);

WebSettings webSettings = mWebView.getSettings();

webSettings.setJavaScriptEnabled(true);

webSettings.setAllowFileAccess(true);

webSettings.setAppCacheEnabled(true);

String appCacheDir = this.getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath() + APP_CACHE_DIRNAME;

webSettings.setAppCachePath(appCacheDir);

webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); // 设置缓存模式

webSettings.setDatabaseEnabled(true);

webSettings.setDomStorageEnabled(true);

webSettings.setGeolocationEnabled(true);

webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);

webSettings.setUserAgentString(webSettings.getUserAgentString() + " android_app");

webSettings.setUseWideViewPort(true);

webSettings.setLoadWithOverviewMode(true);

mWebView.setWebChromeClient(new WebChromeClient()); // 必须

mWebView.setWebViewClient(new WebViewClient() {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

});

mWebView.loadUrl("https://www.example.com"); // 加载你的网页

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK

&& mWebView.canGoBack()

&& !mWebView.getUrl().equals("https://www.example.com")) {

mWebView.goBack(); // 后退操作

return true;

}

return super.onKeyDown(keyCode, event);

}

}

```

以上就是两种网页转换为app的方式,二者各有优劣,开发者可以根据实际情况结合选择。经过整合和封装,这些代码就可以应用于网页转化为app的开发过程中了。


相关知识:
做网站与做app哪个容易
在回答这个问题之前,我们需要先了解一下“网站”和“App”的本质区别。简而言之,网站是基于互联网通过浏览器访问的,而App是运行在移动设备上的应用程序(通常是通过下载、安装和打开来使用的)。由此我们可以看出,两者在技术架构、开发方式和运营模式等方面都存在较
2023-05-18
做app是属于前端还是后端
做App不仅仅涉及前端或后端,而是需要综合运用多种技术来完成。简单来说,前端主要负责用户界面和交互逻辑,而后端则负责数据处理和业务逻辑。前端部分主要使用HTML、CSS和JavaScript等技术来构建用户界面,并通过框架(如React Native)来实
2023-05-18
做app跟做网站哪个简单
做app和做网站都是需要技术和时间投入的工作。两者都拥有自己的优势和劣势。下面我将从原理和详细介绍两个方面来比较哪个更简单。 一、原理比较 1、技术难度 网站的开发技术相对来说比app简单。网站大部分都使用HTML、CSS、JavaScript等前端语言进
2023-05-18
怎么用vue做app
Vue.js是一款流行的 JavaScript 框架,widely used for building dynamic user interfaces和web应用程序。Vue.js已经展示了它在构建大型Web应用程序方面的优越性,但它同样可以用于构建原生移
2023-05-18
用html5做app
HTML5技术可以被用于创建现代化的WEB应用程序和移动APP。 它提供了一组强大的工具和框架,包括HTML5,CSS3和JavaScript。这些技术可以用于开发桌面应用程序和移动应用程序。即:HTML5技术可以被用于创建跨平台的移动应用程序。接下来,我
2023-05-18
想做个网站安卓app
做一个网站的安卓app是很有必要的,因为它可以为你提供更多的用户途径,扩大你的目标受众,而这个过程并不难。本文将介绍一些方法,以帮助你了解如何制作一个网站的安卓app。第一步:选择适合你的app开发平台安卓app开发平台很多,选择一个适合自己的开发平台可以
2023-05-18
网页手机app做
网页手机APP,即PWA(Progressive Web Apps),是一种基于网页技术,能够像原生应用程序一样在移动设备上运行的Web应用程序。 PWA的优点主要体现在用户体验和开发维护成本方面。它不需要下载和安装,直接通过浏览器访问,能够缓解应用商店审
2023-05-18
网页手机做app
在互联网时代,移动互联网发展迅猛,越来越多的网站想要拓展自己的覆盖面,将网站转化为手机应用程序,以便给用户提供更好的体验。但是,开发一个原生的应用程序需要耗费巨大的时间和资源,为此,网页手机转化为app成为了一种选择。网页转化为手机应用的原理是将网页的内容
2023-05-18
什么app可以在手机上做网页
在手机上制作网页可以使用很多不同的应用程序。下面介绍一些比较受欢迎的应用,包括它们的原理和特点。1. HTML EggHTML Egg是一款非常适合初学者的应用程序,它可以在iPhone或iPad上创建和编辑网站。该应用程序利用拖放式的用户界面,可以让用户
2023-05-18
前端做手机app用什么框架
前端开发者可以使用以下一些框架来制作手机应用程序。1. React NativeReact Native(RN)是一个基于React框架的应用程序开发框架。可以用于构建跨平台应用程序,支持iOS和Android平台。 React Native允许开发者使用
2023-05-18
多个jsp网页可以做成app吗
可以。以下是详细的介绍:JavaServer Pages (JSP)是一种基于Java的技术,它在Web服务器上运行动态Web页面。JSP页面上的所有内容都是通过Java代码生成的,这使得JSP页面可以在Web应用程序中的任何Java类中使用。JSP页面可
2023-05-18
极光后台推送消息通知
怎么在极光后台推送消息通知?1.登录极光官网https://www.jiguang.cn/2.登录极光推送,选择极光开发者服务3.选择你需要推送消息的应用4.进入对应的APP推送界面点击左侧【发送通知】进入通知发送页面编写通知内容选择推送版本5.检查消息内
2019-03-01
©2015-2021 智电瑞创 蜀ICP备17039183号