PictureCallCommonで呼び出したイベントでのwindow.open【解決】

tetu
記事: 57
登録日時: 2019年8月02日(金) 18:25

PictureCallCommonで呼び出したイベントでのwindow.open【解決】

投稿記事by tetu » 2019年12月02日(月) 11:46

PictureCallCommonでボタン化して
コモンイベントを呼び出して

ブラウザゲームで攻略などのサイトを
window.openで開くようにしたのですが

クロームや アンドロイド端末では通常に動くのですが
ios safari は無反応になってしまいます

自分でも原因を調べてみたのですが
safari はユーザーきっかけじゃないwindow.openは効かないとの事なのです

ボタン化でクリックしてもらっているのに
ユーザーきっかけにはならないのでしょうか?

自分では解決策を見つけられませんでした
ご助力をお願いしたいです

onclickをプラグインのどこかに差し込むなど考えましたがうまくいきませんでした

追記
ボタンクリック等のユーザーの操作に連動する時であればブロックはされないため、 ボタンのクリック等をしたタイミングで、空ページを指定した window.open() を事前にしておき、 その後のページロード時や非同期通信終了時にそのウィンドウに対して実ページを window.open() する

ということなのですが
プラグインのどこかに一度 window.open()を差し込んでみて実験してみたとおもいます
最後に編集したユーザー tetu on 2019年12月03日(火) 22:34 [ 編集 1 回目 ]

アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: PictureCallCommonで呼び出したイベントでのwindow.open

投稿記事by トリアコンタン » 2019年12月03日(火) 00:01

こんにちは!
プラグインのご利用ありがとうございます。

たしかに画面上の動作を見るとユーザきっかけによりコモンイベントが発火しているように見えますが、内部的にはOnClick処理から直接コモンイベントを呼んでいるわけはないので、このままではwindow.openは機能しません。

各種マウス、タッチイベントを登録しているのはコアスクリプトの以下のメソッドです。ここで登録している各種関数の中であれば、直接のユーザきっかけと見なされwindow.openが機能するかもしれません。

コード: 全て選択

TouchInput._setupEventHandlers
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
tetu
記事: 57
登録日時: 2019年8月02日(金) 18:25

Re: PictureCallCommonで呼び出したイベントでのwindow.open

投稿記事by tetu » 2019年12月03日(火) 13:25

返信ありがとうございます。

教えていただいた個所の
キー入力を待ちにして
ループ処理で、キーを入力されたら実行のようにしてたのですが
反応がありませんでした
現状でいろいろ見てみましたが
InputForm.js くらむぼん様
の送信の個所にwindow.openを記載したところiosでも起動が確認できました
こちらを参考にスクリプトを書き出していきたいと思います
まだ、解決というわけではありませんが
短くまとめることが出来ましたら解決にします
自分なりに試行錯誤してみようと思いますが
ほぼ初心者のようなものなので、簡潔にまとめる方法がございましたら
わかる方ご助力願いたいです。
tetu
記事: 57
登録日時: 2019年8月02日(金) 18:25

Re: PictureCallCommonで呼び出したイベントでのwindow.open

投稿記事by tetu » 2019年12月03日(火) 22:34

プラグインの内容を参考に
思い通りに動かすことが出来ました

情報ありがとうございました。

“MV:質問” へ戻る