Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 89
1

Работа скрипта в Android-приложении: портирование HTML-сервиса

07.07.2015, 11:26. Показов 1533. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
День добрый , приложение при старте открывает веб форму из ресурсов , а в ресурсе уже захардкодин html скрипт - который должен делать расчёт по формуле - в общем переношу этот сервис на андройд - http://bast.ru/support/voltage-drop.html

Но возникает проблема :

если я открываю приложение через браузер онлайн на телефоне - кнопка Расчёт - работает ,

если я копирую html код - в девайс - то кнопка Расчёт не работает , кнопка Очистить - работает , есть предположение - может функция расчёта обращается к класу который находится за пределами этой страницы ? Если да - тогда где он находится.


Вот сам код странички внутри проекта андройд -

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<h1>Расчет падения напряжения в двухпроводной линии</h1>
 
    </div>
 
 
    <p class="alert alert-success">Форма позволяет рассчитать падение напряжения в однофазной двухпроводной линии переменного или постоянного тока, при использовании <strong>медного</strong> кабеля.</p>
    <script>
            function napr (obj)
            {
                if(obj.DLN.value==0 || obj.TOP.value==0 || obj.KPL.value==0)
                {
                     obj.res1.value=""
                     obj.res2.value=""
                }
                else
                {
                     var d = obj.PPS.value       
                     
                     var L3 = obj.DLN.value
                     var L2 = L3.toString()
                     var L1 = L2.replace(',','.')
                     var L           
 
                     
                     var I3 = obj.TOP.value
                     var I2 = I3.toString()
                     var I1 = I2.replace(',','.')
                     var I                   
                     
                     var n3 = obj.KPL.value  
                     var n2 = n3.toString()
                     var n1 = n2.replace(',','.')
                     var n  
                     
                     var U = obj.NIP.value
                     
                     d=Number(d)
                     L=Number(L1)
                     I=Number(I1)
                     n=Number(n1)
                     U=Number(U)
 
                     var R = 0.0175*2*L/d
                     
                     var uPr = R*I/1000*n
                     var u = Math.round(uPr*100)/100
                     
                     var kPr = U-uPr
                     var k = Math.round(kPr*100)/100
                     
                     var xPr = uPr/U*100
                     var x = Math.round(xPr*100)/100
                     
                     if(isNaN(k)==true || isNaN(u)==true || isNaN(x)==true)
                     {
                         obj.res1.value=""
                         obj.res2.value=""
                     }
                     else
                     {
                         obj.res1.value=k+" В"
                         obj.res2.value=u+" В  ("+x+"%)"
                     }
 
                 }
 
            } 
            
        </script>
    <form name="form1">
        <input type ="text" name="DLN" size=10> <strong>L</strong>, длина кабеля, м.<br><br>
        <select name="PPS">
            <option value="0.5">0.5</option>
            <option value="0.75">0.75</option>
            <option value="1">1</option>
            <option value="1.5">1.5</option>
            <option value="2">2</option>
            <option value="2.5">2.5</option>
            <option value="4">4</option>
        </select> <strong>d</strong>, площадь поперечного сечения жилы, мм&sup2.<br><br>
        <input type ="text" name="TOP" size=10> <strong>I</strong>, ток одного потребителя, мА. <br><br>
        <input type ="text" name="KPL" size=10> <strong>n</strong>, количество потребителей в линии, шт. <br><br>
        <select name="NIP">
            <option value="12">12</option>
            <option value="24">24</option>
            <option value="36">36</option>
            <option value="48">48</option>
            <option value="60">60</option>
        </select> <strong>U</strong>, напряжение источника питания, В.<br><br>
        <input type="button" value="Расчёт" onClick="napr(form1)"><br><br>
        <input type="text" readonly="readonly" name="res1" size=15> Величина напряжения на конце линии.<br><br>
        <input type="text" readonly="readonly" name="res2" size=15> Абсолютная величина падения напряжения.<br><br>
        <input type="reset" value=Очистить><br><br>
    </form>
 
    <div class="clearfloat"></div>
</div>
<!--+++++++++++++ Wrapper +++++++++++++++-->



Вот майн активити -
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package com.example.kostukovp.calculationofvoltagedrop;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.webkit.WebView;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
 
 
 
public class MainActivity extends AppCompatActivity {
    WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        // ActionBar actionBar = getActionBar();
        //  actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
        //  actionBar.setCustomView(R.layout.abc_action_menu_item_layout);
        // actionBar.setBackgroundDrawable(new ColorDrawable(Color.GRAY));
        //  getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        final ActionBar actionBar = getSupportActionBar();
        // actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLUE));
 
        // actionBar.setDisplayHomeAsUpEnabled(true);
 
        //   actionBar.setHomeButtonEnabled(true);
        //  ActionBar.setHomeButtonEnabled();
 
 
        setContentView(R.layout.activity_main);
        webView = (WebView) findViewById(R.id.webView);
 
        Intent intent = getIntent();
        //получаем строку и формируем имя ресурса
        //  String resName = "n" + intent.getIntExtra("head", 0);
        // Log.i("name", resName);
        Context context = getBaseContext(); //получаем контекст
 
        //читаем текстовый файл из ресурсов по имени
        String text = readRawTextFile(context, getResources().getIdentifier("n0", "raw", "com.example.kostukovp.calculationofvoltagedrop"));
 
        webView.loadDataWithBaseURL(null, text, "text/html", "en_US", null);
 
    }
 
 
    //читаем текст из raw-ресурсов
    public static String readRawTextFile(Context context, int resId)
    {
        InputStream inputStream = context.getResources().openRawResource(resId);
 
        InputStreamReader inputReader = new InputStreamReader(inputStream);
        BufferedReader buffReader = new BufferedReader(inputReader);
        String line;
        StringBuilder builder = new StringBuilder();
 
        try {
            while (( line = buffReader.readLine()) != null) {
                builder.append(line);
                builder.append("\n ");
            }
        } catch (IOException e) {
            return null;
        }
        return builder.toString();
 
 
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                // app icon in action bar clicked; goto parent activity.
 
                Context context = getBaseContext(); //получаем контекст
 
                //читаем текстовый файл из ресурсов по имени
                String text = readRawTextFile(context, getResources().getIdentifier("n0", "raw", "com.example.kostukovp.calculationofvoltagedrop"));
 
                webView.loadDataWithBaseURL(null, text, "text/html", "en_US", null);
                // this.finish();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
    @Override
    public void onBackPressed() {
        Context context = getBaseContext(); //получаем контекст
 
        //читаем текстовый файл из ресурсов по имени
        String text = readRawTextFile(context, getResources().getIdentifier("n0", "raw", "com.example.kostukovp.calculationofvoltagedrop"));
 
        webView.loadDataWithBaseURL(null, text, "text/html", "en_US", null);
        return;
    }
}

В чём может быть проблема ? почему онлайн - работает - офлайн - нет?

Добавлено через 19 часов 34 минуты
ап1
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2015, 11:26
Ответы с готовыми решениями:

Написание сервиса для фоновой музыки в приложении под Android(Java)
Товарищи, в данный момент столкнулся с одной из многих проблем на моём жизненном пути. Хотелось бы...

Исполнение скрипта в android приложении
Как реализовать работу приложения с внешним сценарием, например: при событии приложение загружает...

Сжатие html и css в webview приложении на android studio
сжатие html и css в webview приложении на android studio возможно ли методами андроид студио...

Портирование скрипта под linux
помогите кто может портировать скрипт под linux ###################### # # Locale...

4
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
07.07.2015, 11:40 2
Лучший ответ Сообщение было отмечено Soprano6111 как решение

Решение

Java
1
2
3
webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
и не андроЙд, а андроид
1
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 89
07.07.2015, 13:34  [ТС] 3
Да ответ , верный но нашёл его на стековерфлоу буквально минут за 20 до появления ответа здесь )

Добавлено через 11 минут
Всё ровно - оперативно , быстро ответил , спасибо , про андроид буду знать , просветил.
0
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
07.07.2015, 13:56 4
Цитата Сообщение от Soprano6111 Посмотреть сообщение
но нашёл его на стековерфлоу буквально минут за 20 до появления ответа здесь )
что то вы батенька темните
тему создали в "Сегодня, 11:26"
ответ поступил "Сегодня, 11:40"
получается что вы нашли ответ до того как задали вопрос
0
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 89
09.07.2015, 00:13  [ТС] 5
Нет , сорь не вру , но и не сомневаюсь что паблито будет покруче парней с русского стековерфлоу , да да нашёл на русском (.
0
09.07.2015, 00:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2015, 00:13
Помогаю со студенческими работами здесь

Портирование на Android
Здравствуйте! В своё время насмотрелся &quot;Во все тяжкие&quot; и запилил программку на Java под ПК...

Работа скрипта с учетом переменных записаных в HTML
Есть INPUT: Длинна пароля&lt;input type=&quot;tel&quot; placeholder=&quot;&quot; value=&quot;12&quot; id=&quot;passHeight&quot;...

Портирование приложений Android на iOS
Всем доброго времени суток. Товарищи, есть ли среди Вас те, кто занимался данным сабжем?...

Портирование java.awt на Android
Подскажите пожалуйста как можно осуществить портирование обычного Java приложения на Android....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru