ページ 11

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

Posted: 2019年12月02日(月) 11:46
by tetu
PictureCallCommonでボタン化して
コモンイベントを呼び出して

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

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

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

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

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

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

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

ということなのですが
プラグインのどこかに一度 window.open()を差し込んでみて実験してみたとおもいます

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

Posted: 2019年12月03日(火) 00:01
by トリアコンタン
こんにちは!
プラグインのご利用ありがとうございます。

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

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

コード: 全て選択

TouchInput._setupEventHandlers

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

Posted: 2019年12月03日(火) 13:25
by tetu
返信ありがとうございます。

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

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

Posted: 2019年12月03日(火) 22:34
by tetu
プラグインの内容を参考に
思い通りに動かすことが出来ました

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