Ejemplo n.º 1
0
    string GenerateHTML(string text, string imagePath = "")
    {
        string imgTag = imagePath != "" ? "<img src='" + imagePath + "' />" : "";

        KX.D(DEBUG, "imgTag = {0}", imgTag);
        string html =
            @"<html>
<head>
	<meta charset='UTF-8' />
  <meta name='viewport' content='width=device-width, initial-scale=1'>
  <style>
    img {
      width: 50%;
      float: left;
      margin: 5px;
    }
  </style>
</head>
<body>
<p>" + imgTag + text + @"</p>
</body>
</html>
";

        return(html);
    }
Ejemplo n.º 2
0
    void PreviewHtml(string html)
    {
        using (var writer = new StreamWriter(htmlFilePath, false)) {
            writer.Write(html);
            writer.Close();
        }

        // WebViewObject の初期化時にWebページ側から呼び出すことができるコールバック関数を定義する。
        // Web側からコールバック関数呼び出すには、リンク要素の href 属性などURLを指定する箇所で
        // 'unit:(任意の文字列)' のように指定すると、コールバック関数が呼び出される。
        // このとき、"(任意の文字列)"の部分が関数の引数として渡される。
        description.Init((string msg) => {
            KX.D(DEBUG, "Call from Web view : " + msg);
        });
        description.LoadURL("file://" + htmlFilePath);

        var rectTransform = description.GetComponent <RectTransform> ();

        AdjustWebViewMargin(description, rectTransform);
        description.SetVisibility(true);
    }
Ejemplo n.º 3
0
    public Card DebugGetFirstData()
    {
        Card card = new Card();


        var          csvFile = Resources.Load("Cards") as TextAsset; /* Resouces/CSV下のCSV読み込み */
        StringReader reader  = new StringReader(csvFile.text);

        string line = reader.ReadLine();

        header = line.Split(',');
        KX.D(true, "header = {0}", string.Join(",", header));
        while (reader.Peek() > -1)
        {
            line = reader.ReadLine();
            csvDatas.Add(line.Split(','));
        }

        //card = csv2Card(csvDatas[0]);
        card = csv2Card(csvDatas [1]);

        return(card);
    }
Ejemplo n.º 4
0
    void InitializeWebView()
    {
        // WebView表示用にHTMLファイルを用意する
        htmlFilePath = Path.Combine(Application.persistentDataPath, "description.html");
        KX.D(DEBUG, "htmlFilePath={0}", htmlFilePath);

        // HTMLファイルに初期表示するHTMLを生成
        string html = GeneratePrepareHTML();

        // TODO サンプル表示用画像を配置 は後で削除
        var saPath     = Path.Combine(Application.streamingAssetsPath, "movie.jpg");
        var targetPath = Path.Combine(Application.persistentDataPath, "movie.jpg");
        WWW www        = new WWW(saPath);

        while (!www.isDone)
        {
            // NOP.
        }
        File.WriteAllBytes(targetPath, www.bytes);

        // HTMLファイルを表示する
        PreviewHtml(html);
    }
Ejemplo n.º 5
0
    void UpdateDictionary(Action <string> callback)
    {
        KX.D(DEBUG, "UpdateDictionary Start");

        var err = "";

        // var 最終更新日 = 最終更新日

        // サーバから更新データを取得
        // JsonData = GetUpdatedDataFromDB(最終更新日);

        // if(JsonData.Length <= 0){
        //   return;
        // }

        // ローカルDBを更新
        // UpdateLocalDB(JsonData);
        // foreach(json in JsonData){
        //   var Card = LocalDB[json.Id];
        //   Card.Japanese = json.Japanese;
        //   Card.Pinyin = json.Pinyin;
        //   Card.Chinese = json.Chinese;
        //   Card.Description = json.Description;
        //   Card.ImageUrl = json.DescriptionImage.url;
        //   Card.Tags = json.Tags;
        // }
        dbm = new DBManager();
        dbm.Initialize();
        CurrentCard = dbm.DebugGetFirstData();

        if (callback != null)
        {
            KX.D(DEBUG, "UpdateDictionary - callback Invoke");
            callback.Invoke(err);
        }
        KX.D(DEBUG, "UpdateDictionary End");
    }
Ejemplo n.º 6
0
    /// <summary>
    /// WebViewの座標とサイズを設定する.
    /// Adjusts the web view margin.
    /// </summary>
    void AdjustWebViewMargin(WebViewObject webViewObject, RectTransform rectTransform)
    {
        // TODO 横幅自動max設定でのanchorを考慮したmargin値取得を実現
        // TODO 不要なコードの削除

        // このUISpriteの上にWebviewを表示したい
        //var background = GetComponent<CanvasRenderer> ();
        //var rectTransform = GetComponent<RectTransform>();
        var localPos   = rectTransform.transform.localPosition;
        var localScale = rectTransform.transform.localScale;

//		// "Background"を写すカメラ
//		var camera = transform.GetComponent<Camera> ();

        //		// "Background"の左下と右上のローカル座標(UIWidget.PivotはCenter前提とする)
        //		var localLB = new Vector3(localPos.x - background.width * 0.5f * localScale.x, localPos.y - background.height * 0.5f * localScale.y, 0f);
        //		var localRT = new Vector3(localPos.x + background.width * 0.5f * localScale.x, localPos.y + background.height * 0.5f * localScale.y, 0f);

        // "Background"の左下と右上のワールド座標
        var worldCorners = new Vector3[4];

        rectTransform.GetWorldCorners(worldCorners);
//		var worldLB = worldCorners [0];
//		var worldRT = worldCorners [2];

        // "Background"の左下と右上のスクリーン座標
        //var screenLB = camera.WorldToScreenPoint(worldLB);
        //var screenRT = camera.WorldToScreenPoint(worldRT);
        var localCorners = new Vector3[4];

        rectTransform.GetLocalCorners(localCorners);
//		var screenLB = localCorners [0];
//		var screenRT = localCorners [2];//camera.WorldToScreenPoint(worldRT);

        // マージンの計算
//		int marginL = (int)(screenLB.x);
//		int marginT = (int)(Screen.height - screenRT.y);
//		int marginR = (int)(Screen.width - screenRT.x);
        //		int marginB = (int)(screenLB.y);
        var       canvas     = rectTransform.GetComponentInParent <Canvas> ();
        var       canvasRect = canvas.pixelRect;
        var       wvLeft     = rectTransform.offsetMin.x;
        var       wvTop      = canvasRect.height - rectTransform.offsetMax.y;   // 画面下から算出
        var       wvRight    = canvasRect.width - rectTransform.offsetMax.x;    // 画面右から算出
        var       wvBottom   = rectTransform.offsetMin.y;
        const int LB         = 0;
        const int RT         = 2;

        wvLeft   = worldCorners [LB].x;
        wvTop    = canvasRect.height - worldCorners [RT].y;
        wvRight  = canvasRect.width - worldCorners [RT].x;
        wvBottom = worldCorners [LB].y;

        int marginL = (int)(wvLeft);
        int marginT = (int)(wvTop);
        int marginR = (int)(wvRight);
        int marginB = (int)(wvBottom);

        // Webview表示
        webViewObject.SetMargins(marginL, marginT, marginR, marginB);
        KX.D(DEBUG, "margin[L,T,R,B]=[{0},{1},{2},{3}]", marginL, marginT, marginR, marginB);
    }