初めて質問させて頂きます。質問者としてのマナーについてもご指導頂ければ幸いです。
関連レコードの参照先アプリに簡単レコード登録 を参照にして、これをスマートフォンで利用しようとしております。
PCは、別アプリの新規レコード作成画面に遷移させて、別アプリの方に値をセットすることができたのですが、
スマートフォンだと、別アプリの方に値をセットしてくれません。
Chromeデベロッパーツールで確認したところ以下のエラーになっていました。
Uncaught TypeError: Cannot read properties of null (reading ‘record’)
。。。「new_app.mobile.app.record.get()」のレスポンスがnullになっていて、new_recordに値をセットできなかったみたいです。
スマートフォンの対応方法をご教示いただきたくお願いいたします。
スマートフォン用に変更したjavascriptは以下になります。
(function() {
‘use strict’;
kintone.events.on(‘mobile.app.record.detail.show’, (event) => { // 「mobile.」追加
const myButton = document.createElement(‘button’);
myButton.id = ‘my_button’;
myButton.innerText = ‘テスト’;
myButton.onclick = function() {
const new_window = window.open(‘https://(サブドメイン名).cybozu.com/k/m/(アプリID)/edit’); // 「/m」追加
new_window.addEventListener(‘load’, () => {
window.postMessage(new_window.kintone != null, location.origin);
});
window.addEventListener(‘message’, (function() {
return function field_set() {
// 新規レコード側のフィールドを指定してsetする
const new_app = new_window.kintone;
const new_record = new_app.mobile.app.record.get(); // 「mobile.」追加
new_record.record.testField.value = ‘テストテスト’;
new_app.mobile.app.record.set(new_record); // 「mobile.」追加
window.removeEventListener(‘message’, field_set, false);
};
})(), false);
};
const myHeaderSpace = kintone.mobile.app.getHeaderSpaceElement(); // 「mobile.app.getHeaderSpaceElement()」に変更
myHeaderSpace.appendChild(myButton);
return event;
});
})();