PC版とモバイル版との挙動の違いについて

以下のようなコード(モバイル版は、‘app.’ → 'mobile.app.'のところだけ書き換えています)を実行して、添付フィールド「af」にファイルを登録してあるレコードを編集状態にしたところ、

PC版のアラート:「1」と「あり」
モバイル版でのアラート:「0」と「なし」

と表示されてしまいました。

基本的な使い方がわかっていないのかもしれませんが、この2つが同じアラートを返すようにするためにはどうすればよいのでしょうか?

実行したコードをコピー&ペーストしましょう

  kintone.events.on('app.record.edit.show', function(event) {
    const afLength = event.record.af.value.length;
    alert(afLength);

    if (afLength > 0) {
      alert('あり');
    } else {
      alert('なし');
    }
  });

@osawa さん

こんにちは、こちらの環境で似たような形で確認してみましたが、PCとモバイルで同じ結果になりましたね。
ここで考えられることですが、
・PCでは認識できる文字だが、モバイルでは認識できないものの可能性
→文字を変えてみてどうか。また、取得されている文字ってどんな文字なんでしょうか?
・同じようで、実はPCとモバイルでコードが違う。
→一度モバイルで使ってるJSのコード貼っていただいたら解決につながるかもです。

1 Like

@y_minamitani9534 さん、ありがとうございます。

コードは、PC用をコピーして
kintone.events.on(‘app.record.edit.show’, function(event) {

kintone.events.on(‘mobile.app.record.edit.show’, function(event) {
に変更しただけですから、違いはないはず・・・ もしかすると、フィールドの参照方法がPCとモバイルでは違うのかと検索をしてもわからずにいます。

テストアプリに添付フィールド「af」だけを作って、ファイルを添付したレコードと、添付しないレコードを作って試しているのですが、添付してもしなくてもモバイル版では「0、なし」というアラートです。

Yuki_Minamitani さんのところでは、正常に動作するとのことなので、可能性が見えてきました。

(function() {
  'use strict';
  kintone.events.on('mobile.app.record.edit.show', function(event) {
    const afLength = event.record.af.value.length;
    
    alert(afLength);

    if (afLength > 0) {
      alert('あり');
    } else {
      alert('なし');
    }
  });
})();

@osawa さん

申し訳ないです、完全に添付ファイルフィールドという部分を読み飛ばしておりました :sweat_drops:
私が試したのは、文字列一行でPCとモバイルで違いがでるのかと違うことをしてました。

PCだと編集画面表示イベントで添付ファイルの配列をくれてますが、モバイルだと確かにくれてないですね :sweat_drops:
なので対処法として、モバイルだけREST APIで取得してあげればできるんじゃないかなと思います。
一応サンプルとして以下に貼ってます。

kintone.events.on('mobile.app.record.edit.show', async function(event) {
    const body = {
      app: kintone.mobile.app.getId(),
      id: kintone.mobile.app.record.getId()
    };

    const resp = await kintone.api(kintone.api.url('/k/v1/record.json', true), 'GET', body);
    const afLength = resp.record.af.value.length;
    alert(afLength);

    if (afLength > 0) {
      alert('あり');
    } else {
      alert('なし');
    }
  });
2 Likes

@y_minamitani9534 さん

わかりにくく書いてしまっていたのですみません。

ご教授いただけたコードで試してみたところ、想定通りの動きとなりました。ありがとうございました。これをもとにあきらめていたカスタマイズができそうです。

(しかし、モバイル版で添付フィールドの配列返すのは難しいのだろうか?)

@osawa さん

いえ、私の注意不足なので…申し訳ないです :sweat_drops:
PCでも添付ファイルはちょっと癖ありますね…
スペースの一時領域にファイルをアップロードしてからfilekeyをフィールドと紐づけする仕組みみたいで結構悩まされたりすること多いので…

無事解決できたようでよかったです :v:

1 Like

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。