我想通过链接打开我的应用程序, 遵循Make a link in the Android browser start up my app?的指示。 好吧,它工作正常(大部分时间......这就是我寻求帮助的原因)。
我的HTML链接
<a href="intent:#Intent;action=com.mark.MY_ACTION;end">Open Application</a>
我的意图过滤器的格式为
<intent-filter>
<action android:name="com.mark.MY_ACTION"/>
<category android:name="android.intent.category.DEFAULT">
<category android:name="android.intent.category.BROWSABLE">
</intent-filter>
到目前为止一切顺利(我希望)。它可以从m-o-s-t浏览器中正常工作。
为了测试上面的内容,我写了一个演示活动
final WebView webview = new WebView(this);
setContentView(webview);
webview.loadUrl("http://www.myhomepage.com/");
页面http://www.myhomepage.com/
有一些自定义链接/ href(包括
无礼的)。
按常规链接会打开带有这些链接的浏览器,但按下我的“特殊链接” link“(intnet one)打开404页面
网页不可用 意图:#Intent;动作= com.mark.MY_ACTION;端
可能会暂时失望....
虽然Diane在The above link中提及,
它们允许您将启动定向到您的应用,而无需用户选择转到浏览器或任何其他应用。
答案 0 :(得分:1)
您的意图过滤器与Diana提到的相同
<activity android:name=".AntonWorld"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="anton" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
所以你应该这样:
<intent-filter>
<data android:scheme="com.mark.MY_ACTION"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
没有测试是否需要android.intent.category.VIEW。如果有效,请告诉我。
答案 1 :(得分:1)
尝试我的简单技巧:
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.startsWith("classRegister:")) {
Intent MnRegister = new Intent(getApplicationContext(), register.class); startActivity(MnRegister);
}
view.loadUrl(url);
return true;
}
和我的HTML链接:
<a href="classRegister:true">Go to register.java</a>
或者你可以制作&lt; a href =“classRegister: true ”&gt; &lt; - 类名
的“true”值但是这个脚本适用于mailto链接:)
if (url.startsWith("mailto:")) {
String[] blah_email = url.split(":");
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{blah_email[1]});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, what_ever_you_want_the_subject_to_be)");
Log.v("NOTICE", "Sending Email to: " + blah_email[1] + " with subject: " + what_ever_you_want_the_subject_to_be);
startActivity(emailIntent);
}
答案 2 :(得分:1)
在Manifest.xml
<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:host="www.parag-chauhan.com"
android:path="/test"
android:scheme="http" />
</intent-filter>
为测试创建另一个项目并在代码
下运行Intent i = new Intent(
Intent.ACTION_VIEW , Uri.parse("http://www.parag-chauhan.com/test")
);
startActivity(i);
您也可以在链接中传递参数。有关详细信息,请参阅我的博文Make a link in the Android browser start up my app?