Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
1

Передача данных в WebView

12.01.2017, 11:46. Просмотров 900. Ответов 2
Метки нет (Все метки)

Всем привет)
У меня есть :
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
 WebView myWebView;
  void init(View v)
    {
     
        myWebView = (WebView) v.findViewById(R.id.webView);
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        myWebView.setWebChromeClient(new WebChromeClient());
        try {
                    InputStream is = getActivity().getAssets().open("index.html");
                    byte[] buffer = new byte[is.available()];
                    is.read(buffer);
                    is.close();
 
                    String htmlText = new String(buffer);
 myWebView.loadUrl("https://yandex.ru/maps/um=constructor%3AtfG3qI_VX7qXifJfnQ1Eu6ZPgeOk_Df6&source=constructorLink";
                    myWebView.loadDataWithBaseURL(
                            "http://com.example.tony.webmap.ymapapp",
                            htmlText,
                            "text/html",
                            "UTF-8",
                            null
                    );
                    myWebView.setWebViewClient(new WebViewClient()
                                             {
                                                 public void onPageFinished(WebView view, String url)
                                                 {
                                                     JSONObject dataObj = new JSONObject();
                                                     try {
                                                         dataObj.put("data", jsonArray);
                                                     } catch (JSONException e) {
                                                         e.printStackTrace();
                                                     }
                                                     myWebView.loadUrl("javascript:init('" + dataObj.toString()+ "')");
                                                   
                                                 }
                                             }
                    );
 
                } catch (IOException e) {
                    e.printStackTrace();
                }
        
 
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        v = inflater.inflate(R.layout.fragment_adress, container, false);
        init(v);
        return v;
    }
Index.
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
<!doctype html>
<html>
<head>
    <title>Example</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
    <meta name="viewport" content="width=device-width,height=device-height, user-scalable=no" />
    <script type="text/javascript">
      function init(val){
// Do whatever you want with your parameter val
        var str = val;
        str = JSON.parse(JSON.stringify(val));
        var myMap;
        ymaps.ready(function () {
            myMap = new ymaps.Map('map', {
                center: [52.033550, 113.496685],
                zoom: 16,
                controls: []
            },{suppressMapOpenBlock: true});
 
 
                alert(str.data[1].x);
         var placemark = new ymaps.Placemark(myMap.getCenter(), {
                balloonContent: '1'
            }, {
                iconColor: 'red'
            });
               myMap.geoObjects.add(placemark);
                placemark.balloon.open();
 
        });
}
    </script>
    <style>
 
        html, body, #map {
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
        }
        #map {
            background-color: white;
        }
    </style>
</head>
<body>
    <div id="map"></div>
</body>
</html>
В общем проблема в том что в alert(str.data[1].x); // не получает значение
Даже в онлайн компиляторе получает, здесь не получает. в чем проблема?
JSON
1
{"data":[{"AdditionalAddress":"фыв"","OperatingMode":"с 09.00 до 20.00 без перерывов и выходных","x":"51.032739","y":"114.503519"},{"AdditionalAddress":"фыв","OperatingMode":"с 9:00 до 20:00","x":"51.019963","y":"114.484408"}]}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2017, 11:46
Ответы с готовыми решениями:

Передача данных в webview через JavaScript Bridge
Суть такая: в приложении есть WebView(отображается html страница с кнопкой взаимодействие с кнопкой...

Передача с webview в jsoup
Здравствуйте.Подскажите,как решить проблему. Необходимо что бы все хтмл странички открывались...

Передача данных
Всем доброго времени суток. Написал приложение на андроид 4.2 для планшета, так же есть программа...

Передача данных по Bluetooth
Проблема в следующем, после определенного количества переданных байт(зависит от телефона, на huawei...

Layout передача данных
Каким способом можно передать данные из дочернего Layout в родительский? Умею только передавать...

2
rjxxx
Фрилансер
73 / 73 / 51
Регистрация: 25.10.2011
Сообщений: 317
12.01.2017, 18:42 2
alert в WebView по умолчанию отключен
0
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
13.01.2017, 04:27  [ТС] 3
rjxxx, вот с этой строкой алерт работает нормально.
Java
1
 myWebView.setWebChromeClient(new WebChromeClient());
А вообще нашел ошибку. Дело было вприходящий строке, там объект имел дополнительные кавычки, и поэтому он не правильно парсил, как только убрал эти данные все заработало.
0
13.01.2017, 04:27
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2017, 04:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Передача данных звуком
На смартфоне получена медицинская информация. Требуется передать её в диагностический центр. Но в...

Передача данных по Wifi
Всем доброго времени суток! Нуждаюсь в помощи... Пишу диплом на тему &quot;Wifi осциллограф&quot;. Имеется...

Передача данных в interface
Мне необходимо передать данные из файла настроек в интерфейс Retrofita. Вот код интерфейса,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.