Как получить доступ к скрипту создания файлов с помощью javascript в веб-просмотрщике с помощью Apple Mapkit?

У меня есть Filemaker 18 с веб-программой просмотра, использующей Apple Maps. Когда я перемещаю булавку на карте, я хочу отправить координаты скрипту создания файлов, который записывает в 2 поля. Проблема в том, что я не могу запустить скрипт. База данных размещена на FM-сервере 18. Я пробовал эти 3 подхода, но я даже не могу запустить простой скрипт «Hello». Имя базы данных - WEBMAP.fmp12. Вот как я пытался запустить сценарий. Я не получаю ответа:

1) var theURL = "fmp: // $ /" & Get (FileName) & "? Script = Hello & param =" + lat + "|" + long;
window.location = theURL; 2) var theURL = "fmnet: //ip_address_of_server/WEBMAP.fmp12? Script = Hello & param =" + lat + "|" + long; window.location = theURL; 3) var theURL = "window.location =" fmp: //$/WEBMAP.fmp12? Script = Hello & param = "+ lat +" | "+ long; window.location = theURL;

Фактически, я замечаю, что когда у меня что-то появляется после показа всплывающего окна (тогда я хочу запустить скрипт), карта остается пустой, что бы я ни добавлял, например «alert (« привет »).

Вот мой файл js в Filemaker 18:

var message = document.getElementById("message");
var center = new mapkit.Coordinate(x,y); // 

mapkit.init({
    authorizationCallback: done => {
        done(
            "<<$$JWT.TOKEN>>"
        );
    }
});    //alert("<<$$JWT.TOKEN>>");

        var map = new mapkit.Map("map", { 
            showsScale: mapkit.FeatureVisibility.Visible,
            center: center
        });

        var marker = new mapkit.MarkerAnnotation(map.center, {
            draggable: true,
            selected: true,
            title: "Dra meg og slipp!"
        });
        marker.addEventListener("drag-start", function(event) {
            // No need to show "Drag me" message once user has dragged
            // event.target.title = "";
            // Hide message
            message.style.display = "none";
        });
        marker.addEventListener("drag-end", function() {
          // center map to marker when moved
            map.setCenterAnimated(marker.coordinate); 
          // hide message after seconds
            window.setTimeout(function () {
                message.style.display = "none";
            }, 3550);

          // message to show after move
            var lat     = marker.coordinate.latitude;
            var long    = marker.coordinate.longitude;
            var message = document.getElementById('message');
            message.innerHTML = "<p>Vi har lagret posisjonen</p>Latitude: " + lat + " <br />Longitude: " + long;
            message.style.display = "block";

//alert("Hello"); ** this alert works!! **
//var test = ‘Hello World!’; alert(test); ** this line gives me a blank map just adding a "var statement" **
var theURL = "fmp://$/" & Get ( FileName ) & "?script=Testaccess&param=" + lat +"|"+ long;  

        window.location = theURL;
// alert(theURL) here gives me blank map
        }); // END drag-end
        map.addAnnotation(marker); 


        var lat     = marker.coordinate.latitude;
        var long    = marker.coordinate.longitude;
        var borchbio = new mapkit.CoordinateRegion(
            new mapkit.Coordinate(lat,long),
            new mapkit.CoordinateSpan(0.002, 0.002)
        );

        map.region = mymap;
        map.mapType = "hybrid";map.setCenterAnimated(new mapkit.Coordinate(x,y), true); 

person Asle    schedule 11.06.2020    source источник
comment
Я даже не могу запустить простой сценарий Hello ». Почему бы вам не начать с этого и не показать нам, как вы пытались это сделать и что произошло в результате. На первый взгляд, это похоже на проблему с привилегиями - см. help.claris.com/en/pro-help/index.html#page/.   -  person michael.hor257k    schedule 11.06.2020
comment
Спасибо! Думаю, проблема была в безопасности. Я включил доступ для запуска URL из скрипта (fmurlscript) в расширенных привилегиях. В то же время я исправил URL-адрес, теперь он работает нормально.   -  person Asle    schedule 12.06.2020


Ответы (1)


Решением было установить права "fmurlscript". Спасибо @ michael.hor257k и более подробную помощь от @paul_tuckey в сообществе Claris. Его ответ здесь.

Файл -> Управление -> Безопасность -> Расширенные настройки -> Расширенные привилегии, выберите fmurlscript, нажмите Edit, добавьте набор привилегий, который совпадает с именем вашей учетной записи, в выбранный fmurlscript

С помощью этого кода я могу запустить сценарий FM из javascript. Вот код, запускающий скрипт. Обратите внимание, что когда моя база данных - «WEBMAP.fmp12», я использую только «WEBMAP» в качестве имени. Я отправляю широту и долготу скрипту, который с ним что-то делает (конвертирует и записывает в сообщение). "Fmp18: //" предназначен для конкретной версии 18.

  var theURL = "fmp18://$/WEBMAP?script=My_FM_Script_Name&param=" + lat +"|"+ long;
  window.location = theURL;
person Asle    schedule 12.06.2020