首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何注册一些URL名称空间(myapp://app.start/),以便在Android操作系统中通过在浏览器中调用URL来访问您的程序?

如何注册一些URL名称空间(myapp://app.start/),以便在Android操作系统中通过在浏览器中调用URL来访问您的程序?
EN

Stack Overflow用户
提问于 2010-03-12 10:05:43
回答 4查看 54.3K关注 0票数 54

所以我想创建一个Android应用程序,这样它就会在android操作系统中的某个地方注册(或者只在系统启动时启动),并且当手机用户在web浏览器中点击网页上的特殊按钮时:

代码语言:javascript
运行
复制
 <a href="myapp://mysettings">Foo</a> 

我的应用程序将弹出并使用该URL中发送的参数运行。

那么我该怎么做呢?

我需要一个具有代码的教程!

EN

Stack Overflow用户

发布于 2015-09-02 17:41:57

因为hackbod从来不给我们代码示例,所以我只想在我开始工作后分享我的代码示例。

首先,您需要在清单文件中定义一个自定义操作:

代码语言:javascript
运行
复制
<activity
    android:name=".activity.MainActivity"
    android:label="@string/app_name_full">
    <intent-filter>
        <action android:name="com.yourpackage.action.OPEN_VIEW"></action>
        <category android:name="android.intent.category.DEFAULT"></category>
        <category android:name="android.intent.category.BROWSABLE"></category>
    </intent-filter>
</activity>

然后,对于您网站上的内容,您需要从意图生成URI。将以下代码放入您的活动中(此代码可以在生成链接后删除):

代码语言:javascript
运行
复制
Intent i = new Intent();
        i.setAction("com.yourpackage.action.OPEN_VIEW");
        i.setPackage("com.yourpackage");
        i.putExtra("myextra","anystring");
        Log.d(getClass().getSimpleName(), i.toUri(Intent.URI_INTENT_SCHEME));

要接收额外内容,请在您的活动中添加以下内容,以便能够接收自定义操作(如清单中所定义):

代码语言:javascript
运行
复制
final Intent intent = getIntent();
final String action = intent.getAction();

        if ("com.yourpackage.action.OPEN_VIEW".equals(action)) {
           Log.i(getClass().getSimpleName(), "EXTRA: "+intent.getExtras().getString("myextra"));
        }

在您的网站上(这是之前生成的链接):

代码语言:javascript
运行
复制
<a href="intent:#Intent;action=com.yourpackage.action.OPEN_VIEW;package=com.yourpackage;S.myextra=anystring;end">Open App with extra</a>

希望这能帮助别人更好地理解。如果我说错了什么,请纠正我。

票数 9
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2430045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档