简体   繁体   中英

How to send app invites from my application (via whatsapp,hike,message)

I am new for Android. I created a simple food app. I want to send invitation to my friends from my app via Whatsapp, message etc. while clicking the invite button. I don't have any idea about that. Can you anyone guide me (Show some examples means more helpful to me).

Thanks in advance!

Refer this link

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);
    private void onShareClicked() {

    String link = "https://play.google.com/store/apps/details?id=com.recharge2mePlay.recharge2me";

    Uri uri = Uri.parse(link);

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_TEXT, link.toString());
    intent.putExtra(Intent.EXTRA_TITLE, "Recharge2me");

    startActivity(Intent.createChooser(intent, "Share Link"));
}

And simply call this function in onClickListner.

btn_tellAFreind.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onShareClicked();
        }
    });

使用 Firebase 从 google 尝试本教程,也许这可以帮助您: https : //codelabs.developers.google.com/codelabs/firebase-android/#10

Firebase Invites are an out-of-the-box solution for app referrals and sharing via email or SMS.

  1. Connect your app to your Firebase project from Firebase console
  2. Enabled Firebase Dynamic Links from the Firebase console by opening the Dynamic Links section and accepting the terms of service if prompted.
  3. Add Firebase to your Android project
  4. Add the dependency for Firebase Invites to your app-level build.gradle file:

compile 'com.google.firebase:firebase-invites:10.0.1'

Send invitations:

Start by building an Intent using the AppInviteInvitation.IntentBuilder class:

Intent intent = new AppInviteInvitation.IntentBuilder(getString(R.string.invitation_title))
        .setMessage(getString(R.string.invitation_message))
        .setDeepLink(Uri.parse(getString(R.string.invitation_deep_link)))
        .setCustomImage(Uri.parse(getString(R.string.invitation_custom_image)))
        .setCallToActionText(getString(R.string.invitation_cta))
        .build();
startActivityForResult(intent, REQUEST_INVITE);

Launching the AppInviteInvitation intent opens the contact chooser where the user selects the contacts to invite. Invites are sent via email or SMS . After the user chooses contacts and sends the invite, your app receives a callback to onActivityResult :

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Log.d(TAG, "onActivityResult: requestCode=" + requestCode + ", resultCode=" + resultCode);

    if (requestCode == REQUEST_INVITE) {
        if (resultCode == RESULT_OK) {
            // Get the invitation IDs of all sent messages
            String[] ids = AppInviteInvitation.getInvitationIds(resultCode, data);
            for (String id : ids) {
                Log.d(TAG, "onActivityResult: sent invitation " + id);
            }
        } else {
            // Sending failed or it was canceled, show failure message to the user
            // ...
        }
    }
}

Check out here for more details about Send and Receive Firebase Invites from Your Android App

Update:

Use Branch sdk to support invite feature on another platform like WhatsApp, Facebook and other social media apps.

Check out here to know How branch link works?

Checkout here for Install guide & code example

You can generate short link by using the following codes:

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
                    .setLink(Uri.parse("https://play.google.com/store/apps/details?id=com.example"))
                    .setDynamicLinkDomain("abc.app.goo.gl")
                    .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
                    .buildDynamicLink();
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
                        .setLongLink(dynamicLink.getUri())
                        .buildShortDynamicLink()
                        .addOnCompleteListener(ReferrerActivity.this, new OnCompleteListener<ShortDynamicLink>() {
                            @Override
                            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                                if (task.isSuccessful()) {
                                    Uri shortLink = task.getResult().getShortLink();
                                    Uri flowchartLink = task.getResult().getPreviewLink();
                                    Log.i(TAG, "onComplete: SHORTLINK " + shortLink.toString());
                                    Log.i(TAG, "onComplete: FLOW LINK " + flowchartLink.toString());
                                } else {
                                    Log.i(TAG, "onComplete: ERROR " + task.isSuccessful() + " " + task.isComplete());
                                }
                            }
                        });

Once you received the short link in onComplete method, share it using intent.

If I understand the question correctly, you want to make the share differentiate when the user clicks share and if he selects to invite via WhatsApp, for example, it will show only Whatsapp as a medium option to share the invite through.

If that is what you want, you should to set the package in the intent you will use for sharing, so if we add to @Vishal answer above

sendIntent.setPackage("com.whatsapp");

You should do the same for any needed social media

You need to add Firebase Dynamic link. Earlier it was Firebase Invites but it is depreciated now. Firebase Dymanic Link is build over Firebase Invites So you can see the invites dependency on gradle file.

You can follow this tutorial for complete example about " How to Create Refer a friend Link "

There is Two ways to create "Refer a Friend Link"

  1. Using Firebase base Dynamic Object

  2. Manually Create Refer a Link

1) Option :-

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        //.setDomainUriPrefix("https://example.page.link")  // no longer in user please
        .setDynamicLinkDomain("example.page.link")  // use this code and don't use https:// here
        // Open links with this app on Android
        .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
        // Open links with com.example.ios on iOS
        .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build())
        .buildDynamicLink();
Uri dynamicLinkUri = dynamicLink.getUri();

2) Option:-

String sharelinktext  = "https://referearnpro.page.link/?"+
              "link=https://www.blueappsoftware.com/"+
              "&apn="+ getPackageName()+
              "&st="+"My Refer Link"+
              "&sd="+"Reward Coins 20"+
              "&si="+"https://www.blueappsoftware.com/logo-1.png";

Then Call ShortDynamicLink Object

Refer Link will be look like this :

https://referearnpro.page.link?apn=blueappsoftware.referearnpro&link=https%3A%2F%2Fwww.blueappsoftware.com%2F

You can check complete example here

a custom method to send invites, also according to the best practice in Android Developers

fun inviteToDownloadApp(context: Context) {
    val intent = Intent(Intent.ACTION_SEND)
    intent.type = "text/plain"
    intent.putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.app_name))
    intent.putExtra(Intent.EXTRA_TEXT, context.getString(R.string.invite_to_download_app))
    context.startActivity(Intent.createChooser(intent, context.getString(R.string.invite_to_download_app)))
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM