Цитата |
---|
Никита Булгаков написал: Добрый день. Разработал локальное приложение. Отметил галочку "Поддерживает BitrixMobile". Открываю приложение на андройде - всё работает. Открываю на айфоне - белый экран. Выяснил что если присутствует конструкция подключения пролога:require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");
То с ней белый экран. Без неё работает, но понятно что без этого не возможна работа приложения. Почему такое происходит и как обойти? |
Вообще из приложение не получится подключить Bitrix API.
Приложение должно работать через REST-API
Однако есть способ обойти это ограничение.
Как делал я:
1. через приложение открывается внутренняя страница.
например: https://'.$_REQUEST['DOMAIN'].'/w4a_apps/widget/APP_NAME/
2. в этой странице: подключаем Bx API и подключаем написанный нами компонент:
Код |
---|
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); |
вот пример конечной страницы:
Код |
---|
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
require_once ('../. ./settings.php');
$options = json_decode($_REQUEST['PLACEMENT_OPTIONS']);
$taskId = intval($options->taskId);
?>
<head>
<met a charset="utf-8">
<met a http-equiv="X-UA-Compatible" content="IE=edge">
<met a name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<li nk rel="stylesheet" href="../. ./css/app.css">
<!-- Additional CSS -->
<li nk rel="stylesheet" href="../. ./css/w4a.add.css?ver=<?=time()?>">
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<sc ript src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></sc ript>
<sc ript src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.13/jquery.mask.js"></sc ript>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<sc ript src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></sc ript>
<sc ript src="//api.bitrix24.com/api/v1/dev/"></sc ript>
<sc ript src="../. ./js/js.w4a.js?ver=<?=time()?>"></sc ript>
</head>
<body>
<?
$APPLICATION->IncludeComponent(
"w4a:w4a_apps.task_docs",
".default",
Array(
'TASK_ID'=> $taskId,
'CACHE_TIME'=>0, // 0-без кеша
),
false
);
?>
</body>
<?php
exit(); |