LoginSignup
2
0

More than 1 year has passed since last update.

Salesforceアプリを起動して取引先情報を表示する方法(for Android)

Last updated at Posted at 2021-08-31

ところで、Androd開発では、別のアプリを起動する処理を書くことが多いですね。

公式ドキュメントの別のアクティビティを開始するを一読すれば、コード自体は簡単に書くことができます。

Javaで別アプリを起動する処理
    Uri intentUri = Uri.parth("[Intentに渡すための文字列]");
    String packageName = "[起動するアプリのpackage名]";
    String className = "[起動するアプリのClass名]";
    intent.setClassName(packageName,className);
    Intent intent = new Intent(Intent.ACTION_VIEW, intentUri);
    startActivity(intent);
Kotlinで別アプリを起動する処理
    val intentUri = Uri.parse("[Intentに渡すための文字列]")
    val packageName = "[起動するアプリのpackage名]"
    val className = "[起動するアプリのClass名]"
    val intent = Intent(Intent.ACTION_VIEW, intentUri)
    intent.setClassName(packageName,className);
    startActivity(intent)

ところで

別アプリを起動する処理を書く際に困る(少なくとも私は困った)ことは

  • Intentに渡すための文字列って何渡せば良いの?
  • 起動するアプリのpackage名って何?
  • 起動するアプリのClass名って何?

だったりします(よね?)。

今回、私が困ったのは、Salesforceアプリを起動して取引先情報を表示する処理を書く際に、Intentに渡す文字列、package名、Class名が分からなかったことです。

一応、Salesforseの公式ドキュメントに目を通してIntentに渡す文字列はわかりました。

取引先企業(リードも同じ)情報を表示するためにIntentに渡す文字列
"salesforce1://sObject/取引先企業のID/view"

残る課題は2つ

package名とClass名が分かれば後は楽勝・・・だけど、ググっても出てこない(T_T)

救いの神現る

しかし、ネットの荒波に溺れかけてた私を哀れんだ神が@xu1718191411さんの記事Android開発 他のアプリを立ち上げるための方法に導いてくれました。

実は、上記の記事だけでは、サンプルアプリを実装するのに足りないリソースがあるのですが、今の私に必要な情報はアプリ実行時にログ出力されるので無問題!

無事にSalesforceのpackage名とClass名を見つける事が出来ました!

Salesforceアプリを起動して取引先情報を表示する処理

と、言う訳で、以下の様に実装すれば、無事に取引先情報を表示出来ます。

JavaでSalesforceアプリを起動して取引先企業情報を表示する処理
    Uri intentUri = Uri.parse("salesforce1://sObject/取引先企業のID/view");
    String packageName = "com.salesforce.chatter";
    String className = "com.salesforce.chatter.Chatter";
    intent.setClassName(packageName,className);
    Intent intent = new Intent(Intent.ACTION_VIEW, intentUri);
    startActivity(intent);
KotlinでSalesforceアプリを起動して取引先企業情報を表示する処理
    val intentUri = Uri.parse("salesforce1://sObject/取引先企業のID/view")
    val packageName = "com.salesforce.chatter"
    val className = "com.salesforce.chatter.Chatter"
    val intent = Intent(Intent.ACTION_VIEW, intentUri)
    intent.setClassName(packageName,className);
    startActivity(intent)

おわりに

仕様を考えたり設計したりコーディングしたり、と、つくるのって基本的に楽しいですが、ロジックは完璧(多分)なのに、設定する値がわからないのって辛いですよね。

イケてるつよつよエンジニア様ならお茶の子菜々(昭和)だと思いますが、ググってすぐに分かれば「こんなに嬉しいことはない!」って思って頂ける方が一人でもいらっしゃったら幸いです。

参考

2
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
2
0