日日爱影视_日本一区二区三区日本免费_大香焦伊人在钱8_欧美一级夜夜爽 - 日韩三级视频在线观看

如何把手機網頁做得像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的開發過程中了。