Published on

ホームページをアプリ化する、xcodeとandroidのコード

目次

ホームページをアプリにして公開したい方向けの記事です。

xcodeとandroid studioでのコードです。
かなりシンプルです。
他にはmonacaでもできるようですが少し前から基本有料になったようです。

iosでアプリにする

xcodeを使います。このコードはxcode10とswiftです。
ホームページ・サイトはUlWebviewは非推奨になったようなのでWKWebViewで表示させます。

controllerで処理を書く。

//  FirstViewController.swift

import UIKit
import WebKit
import GoogleMobileAds

class FirstViewController: UIViewController {
     var bannerView: GADBannerView!
    
 private var webView: WKWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Do any additional setup after loading the view, typically from a nib.
        // WKWebViewを生成
        webView = WKWebView(frame:CGRect(x:0, y:0, width:self.view.bounds.size.width, height:self.view.bounds.size.height - 40))
        // フリップで進む・戻るを許可
        webView.allowsBackForwardNavigationGestures = true        
        // Googleを表示
        let urlString = "https://google.com"
        let encodedUrlString = urlString.addingPercentEncoding(withAllowedCharacters:NSCharacterSet.urlQueryAllowed)
        let url = NSURL(string: encodedUrlString!)
        let request = NSURLRequest(url: url! as URL)
        webView.load(request as URLRequest)
          
    }
   
}

実際の公開はタブバーをつけたりしないとリジェクトされるかもしれないので注意です。
タブバーはcontroller作ってストーリーボードで紐づけてアイコン設定します。

タブバーをつけるとこんな感じになります。

アプリは「Puroduct」「Archive」からビルドしてipaファイルにします。

シミュレーターの機種選択のところを「Generic ios Device」にしないとArchiveがグレーアウトして選択できないので注意しましょう。

App Store Connentへの登録はProvisioningの設定などが必要ですが省略します。

androidでアプリにする

manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test">
    //これ追加
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

MainActivity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
//ここ追加
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebSettings;
import android.view.View;

import android.util.Log;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //サイト表示部分
        WebView myWebView = (WebView) findViewById(R.id.webview);
        myWebView.setWebViewClient(new WebViewClient());
        //googleを表示 
        myWebView.loadUrl("https://google.com");
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        myWebView.getSettings().setLoadWithOverviewMode(true);
        myWebView.getSettings().setUseWideViewPort(true);

    }
}

アプリを作ったらBuildのGenerate a signed app bundle/APKからビルドしてapkファイルにします。
その後はgoogle consoleでアプリを登録する流れになります。

swifの参考記事
https://qiita.com/fromage-blanc/items/079bc8d6da34ac90fecf
android studioの参考記事
https://techacademy.jp/magazine/3503