我想在我的网页浏览中打开像firefox或youtube这样的应用共享的链接。每当我按下分享按钮it launches my app,但它永远不会加载网址 -
// get URL from browsable intent filter
TextView uri = (TextView) findViewById(R.id.urlField);
// get the url
url = getIntent().getStringExtra(Intent.EXTRA_TEXT);
Uri data = getIntent().getData();
if (data == null) {
uri.setText("");
} else {
uri.setText(getIntent().getData().toString());
fadeout();
}
// }
webView = (WebView) findViewById(R.id.webView);
// Load URL from Browsable intent filter if there is a valid URL pasted
if (uri.length() > 0)
webView.loadUrl(url);
else
// dont load
清单
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
<data android:mimeType="image/*" />
</intent-filter>
答案 0 :(得分:1)
抱歉,我误解了你的问题。我以为你正在尝试打开另一个应用程序共享的文本链接。顺便说一句,我试图重现这个问题,这是我的解决方案。
清单:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
这是我的活动
public class MainActivity extends AppCompatActivity {
private WebView webView;
private String url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
Intent intent = getIntent();
String action = intent.getAction();
if (Intent.ACTION_SEND.equals(action)) {
url = getIntent().getStringExtra(Intent.EXTRA_TEXT);
}
}
private void initView(){
webView = (WebView)findViewById(R.id.webView);
//add this to enable video streaming (youtube etc.)
//or to handle webpage with javascript
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setJavaScriptEnabled(true);
}
@Override
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
if(null != url) {
Log.i("URL", url);
webView.loadUrl(url);
}
}
如果它不起作用,请告诉我。