0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Konyでデバイスのメディアを参照および共有する方法【iOS】【Android】

Last updated at Posted at 2021-02-19

#目次

  1. はじめに
  2. 実装方法
  3. まとめ
  4. 参考

#はじめに
アプリを利用している時にメディアを参照および共有したことはありませんか?
そこで、今回はKonyでデバイスのメディアを参照および共有する方法についてご紹介します。

#実装方法
####①画面の作成
image.png
下の「問い合わせる」ボタンを押すと、アルバムが開かれ、添付したいファイルを選択し、メールを送信することができます。

####②コーディング
frmDemoControllerのコーディングを行います。

frmDemoController.js
define({ 
  onClickSendEmail: function() {
    // デバイス内のファイルへのアクセス許可を要求。
    kony.application.requestPermission(kony.os.WRITE_EXTERNAL_STORAGE, this.requestPermissionCallback);
  },

  // アクセス許可成功後に実行するコールバック関数
  requestPermissionCallback: function() {
    // アルバムを開く
    kony.phone.openMediaGallery(this.openMediaGallaeryCallback);
  },

  openMediaGallaeryCallback: function(rawbytes, permStatus, mimeType) {
    if(rawbytes !== null) {

      var attachment = {};
      
      // iPhoneかiPadの場合
      if (kony.os.deviceInfo().name === "iPhone" || kony.os.deviceInfo().name === "iPad" || kony.os.deviceInfo().name === "iPod touch") {
        attachment = {mimetype: permStatus, attachment: rawbytes, filename: "" };
      
      // Androidの場合
      } else if (kony.os.deviceInfo().name === "android") {
        var resourcePath = rawbytes.getResourcePath();
        attachment = {mimetype: mimeType, attachment: resourcePath };
      }
      
      // メール送信
      kony.phone.openEmail(["dummy@support.com"], [""], [""], "", "", false, [attachment]);

    } else if (permStatus == kony.application.PERMISSION_DENIED) {  
      alert("Permission Denied to Access the Photo Gallery");
    }
  },
});

上を説明します。

kony.application.requestPermission:デバイス内のファイルへのアクセス許可を要求。

パラメータ 説明 必須orオプション
resourceId 使用可能なresourceId定数は次のとおり
kony.os.RESOURCE_CAMERA:デバイスのカメラへのアクセス
kony.os.RESOURCE_LOCATION:デバイスの場所へのアクセス
kony.os.RESOURCE_PHOTO_GALLERY:フォトアルバムまたはギャラリーへのアクセス
kony.os.RESOURCE_CONTACTS:ユーザーの連絡先へのアクセス
kony.os.RESOURCE_CALENDAR:デバイスのカレンダーへのアクセス
kony.os.RESOURCE_SIRI(iOSのみ):AIアシスタントのアクセス
kony.os.RESOURCE_AUDIO_RECORD:オーディオのアクセス
kony.os.RESOURCE_NOTIFICATION(iOS固有):通知システムのアクセス
必須
statusCallback コールバック関数
function statusCallback(response);

◆ステータス
kony.application.PERMISSION_GRANTED:アプリがリソースへのアクセスを許可されていることを示す
kony.application.PERMISSION_DENIED:リソースにアクセスするための十分な権限がないことを示す
kony.application.PERMISSION_NEVER_ASK_AGAIN:Androidにのみ適用されます。リソースにアクセスするための十分な権限がなく、ユーザーにリクエストが表示されないことを示す
必須
options[JSObject] 許可が必要なリソースを識別するための追加オプションを指定。このキーはAndroidにのみ適用。
kony.application.PERMISSION_NEVER_ASK_AGAINステータスを取得するには、getNeverAskAgainStatusキーをtrueに設定し、オプションオブジェクトにキーを渡す必要が有る。キーが設定されておらず、ユーザーが[拒否]または[再度確認しない]オプションを選択した場合、アクセス許可のステータスはKony.application.PERMISSION_DENIEDとなる。
オプション
options[Object]-通知用 通知の必須パラメーター
{notificationtypes : constants}

使用可能な通知のタイプは次のとおり
kony.notificationsettings.BADGE:通知タイプをバッジとして指定
kony.notificationsettings.SOUND:通知タイプをサウンドとして指定
kony.notificationsettings.ALERT:通知タイプをアラートとして指定
オプション

kony.phone.openMediaGallery:デバイスの画像ギャラリーを開いて既存の画像を選択することが可能。

本記事とは関係ないですが、参照したメディアをメール送信するために、openEmailを使用します。
kony.phone.openEmail:メールアドレス、件名、本文、および添付ファイルを定義してメールアプリを起動。
→kony.phone.openEmail (torecipients、ccrecipients、bccrecipients、subject、messagebody、ismessagebodyhtml、attachments)

パラメータ 説明 必須orオプション
torecipients 宛先 必須
ccrecipients cc オプション
bccrecipients bcc オプション
subject 件名 オプション
messagebody 本文 オプション
ismessagebodyhtml true:htmlコンテンツ, false:htmlコンテンツではない オプション
attachments 添付ファイル オプション

attachments(添付できるファイル)については以下になります。

ファイル 説明
mimetype [String] image / png、image / jpg、image / *などの標準的なメディアタイプ(mimeタイプ)
添付ファイル[Object] カメラ、画像ウィジェット、またはopenmediagalleryapiから受信したRawbytes(動画も送信可)
filename(オプション)[String] 添付ファイルとして表示するファイルの名前
※Androidはサポート外

####③アクセス許可の構成[Android]
右のProject Settingをクリック
image.png
上のNativeをクリック
image.png
その下のAndroidをクリック
image.png
WRITE_EXTERNAL_STORAGEをクリック > Addをクリック
image.png
右のThe following permissions are set to trueWRITE_EXTERNAL_STORAGEが追加されたのを確認 > Finishをクリック
image.png

####④アクセス許可の構成[iOS]
右のタブからAssetsをクリック > infoplist_configuration.jsonを右クリック
image.png
image.png
エディタソフト(今回はVisual Studio Codeを使用)を開き、最終行に"NSPhotoLibraryUsageDescription": "Photo Library Access Warning"を追加
image.png

####⑤Actionの紐付け
関数の準備ができたらActionと紐づけていきます。
btnSendEmail(「問い合わせる」ボタン)を選択 > Actionタブをクリック > onClickのEditをクリック > Action(onClickSendEmail)紐づけ
image.png

実際にどうなるかみていきましょう!

####⑥実装の確認

ボタンをタップするとアルバムが開かれ、写真を選択するとメールアプリが起動されることが分かりますね!

#まとめ
Konyでデバイスのメディアを参照および共有する方法について説明しました。
みなさんもぜひ活用してみてくださいね:wave:

#参考
kony.phone.openMediaGallery、kony.phone.openEmail:
https://docs.kony.com/konylibrary/visualizer/viz_api_dev_guide/content/kony.phone_functions.htm

kony.application.requestPermission:
https://docs.kony.com/konylibrary/visualizer/viz_api_dev_guide/content/kony.application_functions_runtimepermissionsapi.htm

Runtime Permission API:
https://docs.kony.com/konylibrary/visualizer/viz_api_dev_guide/content/runtime_permissions.htm

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?