【问题标题】:How to return back to paused Activity which is launched the browser, from a link in webpage?如何从网页中的链接返回到浏览器启动的暂停活动?
【发布时间】:2019-12-03 19:21:57
【问题描述】:

我正在开发一个在线商店应用程序。我想使用浏览器将用户引导到支付页面。当用户支付价格服务器直接用户到另一个网页。在该网页中单击链接并返回应用程序也可以从链接中获取付款结果。

当用户想要付款时,我使用意图将用户引导到网络浏览器,如下所示:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("payment-link"));
startActivity(intent);

然后我使用"<a href="">" 标签返回到像这样午餐浏览器的活动:

在 html 中:

<a href="intent:#Intent;action=my-package-name;category=android.intent.category.DEFAULT;category=android.intent.category.BROWSABLE;S.status=ok;end">Go back to App</a>

在清单中:

<activity android:name=".activities.TestActivity">
    <intent-filter>
        <action android:name="my-package-name" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    </intent-filter>
</activity>

但结果不是我想要的。我想恢复活动,而不是在浏览器堆栈之上创建一个。我也使用了android:launchMode="singleInstance",但 onBackPressed 直接用于活动,我知道这是预期的结果。

我想要这个:

是否有任何恢复活动的方法或任何其他建议来实施此方案?谢谢

【问题讨论】:

    标签: android uri lifecycle intentfilter


    【解决方案1】:

    我解决了。浏览器应该使用Intent.FLAG_ACTIVITY_NO_HISTORY 启动,并且“MyActivity”应该是 singleTask。

    在清单中:

    <activity
        android:name=".activities.OrderDetailsActivity"
        android:screenOrientation="portrait"
        android:launchMode="singleTask">
        <intent-filter>
            <action android:name="ir.bornait.isan" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>
    

    用于启动浏览器:

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("payment-link"));
        intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        startActivity(intent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      相关资源
      最近更新 更多