如何处理此字符串以打开我的应用程序

时间:2013-12-12 13:51:18

标签: android redirect android-intent

我在浏览器重定向中获取此字符串

意图://视图id = 123#意图;包= com.myapp;方案= MyApp的; launchFlags = 268435456; END;

我该如何使用它?

发现于:http://fokkezb.nl/2013/09/20/url-schemes-for-ios-and-android-2/

1 个答案:

答案 0 :(得分:1)

您在同一篇文章的第1部分中得到了答案:

http://fokkezb.nl/2013/08/26/url-schemes-for-ios-and-android-1/

您的活动必须具有与给定意图匹配的意图过滤器 你有:

package=com.myapp;scheme=myapp

您的应用包必须是 com.myapp 且网址方案是 myapp:// 所以你必须声明你的活动:

<activity android:name=".MyActivity" >
     <intent-filter>
         <action android:name="android.intent.action.VIEW"/>
         <category android:name="android.intent.category.DEFAULT"/>
         <category android:name="android.intent.category.BROWSABLE"/>
         <data android:scheme="myapp" />
     </intent-filter>
 </activity>

然后您的活动将由android自动打开。

Optionnaly你可以使用从你的代码收到的uri,例如onResume方法(为什么onResume? - &gt;因为它总是在onNewIntent之后调用):

    @Override
    protected void onResume() {
        super.onResume();

        Intent intent = getIntent();
        if (intent != null && intent.getData() != null) {
            Uri uri = intent.getData();
            // do whatever you want with the uri given
        }
    }

如果您的活动使用onNewIntent,我建议使用setIntent,以便上面的代码始终在最后一个意图上执行:

    @Override
    protected void onNewIntent(Intent intent) {
        setIntent(intent);
    }

这是否回答了你的问题?