質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

2回答

1165閲覧

WebIntent プラグインのstartActivityメソッドが2度めに動作しない

nomori7010

総合スコア36

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

2クリップ

投稿2020/02/14 02:19

Monacaアプリ上でPDFファイルが開けるようにWebintentプラグインを実装しました。

動作確認をしたところ、起動後初めてリンクをタップした場合はPDFビューアーが開き、目的のPDFファイルを閲覧することができるのですが、PDFビューアーから戻り、もう一度同じリンクをタップすると動作しません(Xperia SOV38とAQUOS SHV37で、Monacaデバッガーおよびデバッグビルドで動作確認しました)。

USBデバッグを行い、clickイベントが発火しているのは確認できたのですが、startActivityメソッドを通過後、何も起きません(callbackにもerrcallbackにも到達しません)。
こちらの現象の解消方法はございますでしょうか。

javascript

1 $("a").on("click", function(elm){ 2 if(monaca.isAndroid){ 3 window.plugins.webintent.startActivity( 4 { 5 action: window.plugins.webintent.ACTION_VIEW, 6 url: this.href 7 }, 8 function() {console.log("Android Intent is Successed")}, 9 function() {alert('指定したURLを開けませんでした。')} 10 ); 11 }else{ 12 window.open(this.href, "_system"); 13 } 14 });

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

aタグのクリックイベントの関数にリンクに遷移するという本来のクリックイベントを発生させないようにreturn false;を追加することで解消しました。
最初のクリックでwebintentは動作した上で、遷移するというイベントも発生してしまい、それが原因になっていたようです。

javascript

1 $("a").on("click", function(elm){ 2 if(monaca.isAndroid){ 3 window.plugins.webintent.startActivity( 4 { 5 action: window.plugins.webintent.ACTION_VIEW, 6 url: this.href 7 }, 8 function() {console.log("Android Intent is Successed")}, 9 function() {alert('指定したURLを開けませんでした。')} 10 ); 11 }else{ 12 window.open(this.href, "_system"); 13 } 14 return false;//←これを追加して解決しました。 15 });

投稿2020/02/14 09:16

nomori7010

総合スコア36

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

MonacaでPDF表示をしたことがありましたが、なかなか手ごわいです。
色々試してみたのですが、OS毎にライブラリを変えないとダメでした。
ご参考になれば。
※要件としては表示出来て、画面の回転が出来るという要件を満たすライブラリです。

AndroidだけでいいのであればPDF.jsでいかがでしょうか?

Android・・・PDF.js
iOS・・・InAppBrowser-Monaca(Cordova)プラグイン

投稿2020/02/14 03:13

MonacaSommelier

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nomori7010

2020/02/14 05:20

PDF.jsはネット上で情報を探している時に見かけました。 可能であればどういった不具合が手強かったかったのかお聞かせいただけますと幸いです。
MonacaSommelier

2020/02/14 06:00

目的としては同じライブラリでiOS、AndroidでPDFを表示および回転(画面回転時に表示も縦、横になる)をさせたかったのですが、うまくいきませんでした。 InAppBrowserを使うとAndroidではクロスドメインのエラーで表示できず、 PDF.jsを使うとiOSで表示がすごく遅くなる現象がありました。 はっきりした原因は不明ですが、カスタムフォントを使っていると それを変換するのに時間がかかっていた可能性が高い。 なので、結果的に要件を満たすために下記に行き着いたわけです。。。 Android・・・PDF.js iOS・・・InAppBrowser-Monaca(Cordova)プラグイン
nomori7010

2020/02/14 06:57

大変参考になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問