Java 在Android浏览器/webview中处理链接以直接启动应用程序
我想从一个链接打开我的申请, 按照……的指示。 嗯,它很好用(大多数时候……这就是我寻求帮助的原因) 我的html链接是Java 在Android浏览器/webview中处理链接以直接启动应用程序,java,android,Java,Android,我想从一个链接打开我的申请, 按照……的指示。 嗯,它很好用(大多数时候……这就是我寻求帮助的原因) 我的html链接是 我的意图过滤器在表单中 , 它们允许您仅将启动指向您的应用程序,而用户无需选择转到浏览器或任何其他应用程序 您的意图过滤器与Diana提到的相同 <activity android:name=".AntonWorld" android:label="@string/app_name"> <intent-filter>
我的意图过滤器在表单中
,
它们允许您仅将启动指向您的应用程序,而用户无需选择转到浏览器或任何其他应用程序
您的意图过滤器与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。让我知道它是否有效。试试我的简单技巧:
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>
将此代码添加到Manifest.xml
Diana还说她对子元素的顺序有一些问题。在android.intent.category.Default之前,您可能需要android.intent.category.BROWSEABLE。我不希望我的url是anton://www.....com,我想将隐式意图转发给我的应用程序。它现在不是anton,因为您已更改了以下意图筛选器子元素:并且您的链接是code
,我认为应该是,我将制作一个测试类并检查它。您所建议的是另一种方法。它的工作原理与“意图:”方法几乎相同。尝试从这个浏览器中使用你的方法我相信这就是你想要的,这是一种使用scheme的方法,但正如Diane(我的导师)所说,“我们强烈劝阻人们不要使用他们自己的scheme,除非他们正在定义一个新的全球互联网方案。”我想使用intent:。。。。
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);
}