我有一个博客,我只使用Webview制作了它的应用版本。问题是:我想通过其他应用程序分享我的帖子,比如发送一条whatsapp消息或一封电子邮件给某个链接到我博客上特定帖子的人(比如www.blogspot.myblog.com/2017/postexample) ,然后可以选择用我的应用程序打开这个,就像Facebook一样,甚至是Youtube。 我做了这个:
<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="mywebsite.com"
android:pathPrefix="/"
android:scheme="http" />
<data
android:host="www.mywebsite.com"
android:pathPrefix="/"
android:scheme="http" />
</intent-filter>
它确实启动了我的应用程序,但(当然)它会打开应用程序的默认页面,而不是www.blogspot.myblog.com/2017/postexample,那么我应该怎么做才能直接打开已发送的URL?谢谢大家,非常感谢帮助。
修改
现在是我的代码:
<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="http"
android:host="www.blog.com"
android:pathPrefix="/" />
</intent-filter>
</activity>
活动
public class BlogActivity extends AppCompatActivity {
private static final String TAG = "BlogActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
//Get the link from that Uri
if (data != null) {
Log.d(TAG, "Data" + data.toString());
WebView WebView2 = (WebView)findViewById(R.id.web1);
WebView2.setWebViewClient(new WebViewClient());
WebView2.loadData(TAG, "text/html; charset=utf-8", "UTF-8");
WebSettings webSettings = WebView2.getSettings();
webSettings.setJavaScriptEnabled(true);
}
}
}
答案 0 :(得分:1)
查看:https://developer.android.com/training/app-indexing/deep-linking.html
从以上链接:
系统通过意图过滤器启动您的活动后,您可以使用Intent提供的数据来确定需要呈现的内容。调用getData()和getAction()方法来检索与传入的Intent关联的数据和操作。您可以在活动的生命周期中随时调用这些方法,但通常应该在早期回调期间执行此操作,例如onCreate()或onStart()。
这是一个片段,展示了如何从Intent中检索数据:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
//Get the link from that Uri
if(data != null) {
Log.d(TAG, "Data" + data.toString());
}
}