スマホアプリでのXMLHttpRequestについて

お世話になります。

XMLHttpRequestを使用したkintoneのアプリを作成し、スマホのkintoneアプリで動作確認をしたところ動作しませんでした。
(ややこしくてすみません。。。)
具体的にはxmlHttp.send(null)を行うと動作が停止します。

しかしながら、スマホのブラウザ(google chome)では意図した動作が実現しました。
これは皆様同じような現象が起きているのでしょうか?

Kohei Hasebeさん

モバイルビューでは現状「kintone.api()」が対応していないので、こちらのTipsでもXMLHttpRequestを使いましたが、iOSのChromeでも問題なさそうでした。(ChromeではDevツールによる詳細チェックは行っていません)

https://cybozudev.zendesk.com/hc/ja/articles/202179174

今回はnullを送信されていますので、Tipsと同じくGETかと想像しますので、比較頂くと良いかもしれません。

回答ありがとうございます。
まさにそちらのTipsを参考にしていました!

スマホのchomeで動作することを確認できているのですが、スマホアプリのkintoneで意図した動きをできていません。
chomeで見るしかないか、問い合わせてみたいと思います。

モバイルビューでは現状「kintone.api()」が対応していないので、

そうなのですね。。。下記URLには使用可能とあったため、てっきり使用できるものかと思っていました。
https://cybozudev.zendesk.com/hc/ja/articles/202166310-kintone-REST-API-%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88

ただ、下記URLを見ると使用不可になっていてどちらが正しいのかいまいち不明確ですね。。。
https://cybozudev.zendesk.com/hc/ja/articles/202738940-PC-%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3-%E6%97%A9%E8%A6%8B%E8%A1%A8

すみません。全体に勘違いしていました。

kintone.api()、PUTで通してました(^^; 最近は極力XMLHttpRequestを使わないようにしているのですが、ここで使ったのはコールバックされると厳しかったからでした。(記述と表はチグハグですね)

あと本題ですが、スマホアプリにJS組み込めるのでしょうか。ネイティブアプリはその動作をデバイス最適化する意図があったので、難しそうだなぁとの固定観念から反映されないものと思い込んでいましたが、...。

いずれも再度確認してみたいと思います。

Kohei Hasebeさん

結論としては、同じ事象を確認させて頂きました。

スマホアプリでもJSが適用されていますし、XMLHttpRequestは通らないようですね。

https://help.cybozu.com/ja/k/user/js_customize.html

また、kintone.api()はスマホアプリでも問題なく通っているようです。TipsでXMLHttpRequest/GETの部分をkintone.api()で変えるとスマホアプリでも動きました(ブラウザよりまごつく印象ですが)。Tipsは検証条件を記載させて頂いてはいるものの修正も検討させて頂くのが良いかと感じました。ありがとうございます。

Ryu Yamashita様

お手数おかけいただき、ありがとうございます!
やはりそうなのですね。。。

一応、サイボウズ社に問い合わせをして現在応答待ちという状況です。
進展がありましたらこちらにて報告させていただきます。

Ryu Yamashita様

大変恐縮なのですが、XMLHttpRequest/GETの部分をkintone.api()で変える方法を教えていただくことはできないでしょうか…?

ピンポイントで切り出すと、このような感じで大丈夫でした。

kintone.api(‘/k/v1/records’, ‘GET’, {app: appId, query: strQuery}, function(resp){
var records = resp.records;
// 以下、GETに成功した際の処理を記述

return;

}, function(resp) {
alert(‘error->’ + resp);
return;
});

TipsみたくPC用とスマホ用で共存させるような書き方をしようとするときには、少し見直しが必要かと思います。検討してみたいと思います。

Ryu Yamashita様

ありがとうございます!
PCとスマホでソースを分けているので、Tipsのように共存させるような書き方はとても参考になります!

というかRyu Yamashita様の記事はいつも参考にさせていただいています!
本当にありがたい限りです!

Tipsご覧頂き、ありがとうございますm(__)m 私も勉強させて頂いています。

PC用とスマホ用で同じだったり、似たような内容になるところは上手く書きたいですよね。ネイティブアプリをあまりチェックしておらず、お恥ずかしいところですが。

Ryu Yamashita様

サイボウズ社より回答をいただきましたので、内容をシェアいたします。

----▼以下、回答内容▼----

「kintone モバイル」を利用した際、アプリに読みんだ JavaScript が
正常に動作しない現象について、本メールにて調査結果を案内します。
どうぞよろしくお願いいたします。

お知らせいただいた情報から、「kintone モバイル」では XMLHttpRequest が
動作しない、Safari では正常に動作することを、弊社でも確認できました。
ありがとうございます。

恐れ入りますが、「kintone モバイル」では、同期リクエストを
利用できないようになっております。
申し訳ございません。

「kintone モバイル」は、iOS で用意されている UI を使って
「kintone」を表示、Safari は Safari を使って「kintone」を
表示しております。

上記より、「kintone モバイル」と Safari での動作に、
違いが出ている状況です。

「kintone モバイル」で、同期リクエスト XMLHttpRequest が
動作しない現象は、iOS 側で制御しております。

そのため、「kintone モバイル」での対処が難しくなっております。
重ねてお詫び申し上げます。

回避策としては、「kintone」を iPhone の Safari から利用する、
クライアントマシンから「日報の内容を反映」ボタンを押す運用とする、
kintone.api() を利用する方法となります。

やはりRyu Yamashita様のおっしゃる通りkintone.apiを利用するのが一番の対応策のようです。

以上、報告でした。。。

Kohei Hasebeさん

情報共有頂き、ありがとうごあいます。やはりアップデート等を含めて極力標準的な記述を心がけた方が無難ということですね。同期・非同期で言うと同期リクエストしたいときもありますが・・・。