ok danke, habe jetzt einfach eine neue Activity gestartet(wen man die Benachrichtigung anklickt). Die Activity startet dan ein custom chrome tab.
LG Jonas
ok danke, habe jetzt einfach eine neue Activity gestartet(wen man die Benachrichtigung anklickt). Die Activity startet dan ein custom chrome tab.
LG Jonas
habe Garnichts verstanden. Ich programmiere noch nicht so lange mir android. Kannst du das anders formulieren?
Ich habe jetzt beim service "updateweb" einfach nur ein Toast gemacht und der wurde Toast angezeigt(https://youtu.be/9HmLYX_26g4). Heist der servic wird gestartet. Jetzt will ich in dem service das die app gestartet wird und dann der webview1 auf die url "http://www.nexusprime.de/update/" gesetzt wird.
package net.villi_designs.nexusprimeapp;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.IntDef;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;
public class updateweb extends Service {
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Tost", Toast.LENGTH_SHORT).show();
stopSelf();
return super.onStartCommand(intent, flags, startId);
}
}
Alles anzeigen
Ich schicke eine Benachrichtigung über php an meine app. Über firebase. Und wen ich auf diese Benachrichtigung klicke wird ein Service über einen Intent bzw über einen PendingIntent gestartet. Der service soll ein webview die url laden bzw ändern. nur wenn man auf die Benachrichtigung klickt stürz die app ab und in android studio im Android monitor kommt der error.
package net.villi_designs.nexusprimeapp;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.media.RingtoneManager;
import android.net.Uri;
import android.support.v4.app.NotificationCompat;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
/**
* Created by witze on 11.07.2017.
*/
public class FCM_Messining_Servic extends FirebaseMessagingService{
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if(remoteMessage.getFrom().equals("/topics/" + FCM_Instens_ID_services.infotoppikname)){
displaynotification(remoteMessage.getData().get("titel"), remoteMessage.getData().get("text"));
}
}
private void displaynotification(String titel, String text){
Uri notificationsound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Intent notintent = new Intent(this, updateweb.class);
PendingIntent notpendingIntent = PendingIntent.getService(this, 0, notintent, 0);
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle(titel)
.setContentText(text)
.setSmallIcon(R.drawable.ic_notify)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.cropped_nexus))
.setColor(getResources().getColor(R.color.colorPrimary))
.setVibrate(new long[]{0,300, 300, 300})
.setLights(Color.YELLOW, 1000, 5000)
.setContentIntent(notpendingIntent)
.setAutoCancel(true)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setStyle(new NotificationCompat.BigTextStyle().bigText(text))
.setSound(notificationsound)
.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(14, notification);
}
}
Alles anzeigen
Hallo,
ich programmiere gerade, wenn ich auf eine Benachrichtigung klicke, dann soll sich eine Webseite im webview öffnen. Wenn ich auf die Benachrichtigung klicke, dann stürz die App ab und folgender Fehler kommt.
[MainActivity.java
package net.villi_designs.nexusprimeapp;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.google.firebase.messaging.FirebaseMessaging;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
public static View view2;
public static View view1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent emailintent = new Intent(Intent.ACTION_SEND);
String[] recipients = new String[]{"[email protected]", "",};
emailintent.putExtra(Intent.EXTRA_EMAIL, recipients);
emailintent.putExtra(Intent.EXTRA_SUBJECT, "Verbesserungen an App Nexus Prime");
emailintent.setType("text/plain");
startActivity(Intent.createChooser(emailintent, "Send mail..."));
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
WebView web = (WebView) findViewById(R.id.webview1);
WebView webb = (WebView) findViewById(R.id.webview2);
web.setWebViewClient(new WebViewClient());
web.loadUrl("http://nexusprime.de/");
web.getSettings().setJavaScriptEnabled(true);
FirebaseMessaging.getInstance().subscribeToTopic(FCM_Instens_ID_services.infotoppikname);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
//Snackbar.make(findViewById(R.id.drawer_layout), "Topic aboniert", Snackbar.LENGTH_SHORT).show();
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
WebView web = (WebView) findViewById(R.id.webview1);
WebView webb = (WebView) findViewById(R.id.webview2);
//webview1
web.setWebViewClient(new WebViewClient());
web.getSettings().setJavaScriptEnabled(true);
view1 = (WebView) findViewById(R.id.webview1);
//webview1
webb.setWebViewClient(new WebViewClient());
webb.getSettings().setJavaScriptEnabled(true);
view2 = (WebView) findViewById(R.id.webview2);
int id = item.getItemId();
if (id == R.id.start) {
web.loadUrl("http://www.nexusprime.de/");
view2.setVisibility(View.INVISIBLE);
view1.setVisibility(View.VISIBLE);
} else if (id == R.id.apply) {
web.loadUrl("http://www.nexusprime.de/apply/");
view2.setVisibility(View.INVISIBLE);
view1.setVisibility(View.VISIBLE);
} else if (id == R.id.forum) {
web.loadUrl("http://www.nexusprime.de/forum/");
view2.setVisibility(View.INVISIBLE);
view1.setVisibility(View.VISIBLE);
} else if (id == R.id.coki) {
web.loadUrl("http://www.nexusprime.de/?page_id=53");
view2.setVisibility(View.INVISIBLE);
view1.setVisibility(View.VISIBLE);
} else if (id == R.id.shop) {
webb.loadUrl("http://shop.nexusprime.de/");
view2.setVisibility(View.VISIBLE);
view1.setVisibility(View.INVISIBLE);
} else if (id == R.id.login) {
web.loadUrl("http://www.nexusprime.de/login/");
view2.setVisibility(View.INVISIBLE);
view1.setVisibility(View.VISIBLE);
} else if (id == R.id.nav_share) {
Intent shahre = new Intent(Intent.ACTION_SEND);
shahre.putExtra(Intent.EXTRA_TEXT, "Installiere dir jetzt die Nexus Prime App: http://nexusprime.de/?page_id=157");
shahre.setType("text/plain");
startActivity(Intent.createChooser(shahre, "Teilen Via..."));
} else if (id == R.id.nav_send) {
Intent emailintent = new Intent(Intent.ACTION_SEND);
String[] recipients = new String[]{"[email protected]", "",};
emailintent.putExtra(Intent.EXTRA_EMAIL, recipients);
emailintent.putExtra(Intent.EXTRA_SUBJECT, "Verbesserungen an App Nexus Prime");
emailintent.setType("text/plain");
startActivity(Intent.createChooser(emailintent, "Send mail..."));
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
public static boolean showweb(){
final WebView wv1 = (WebView) view1.findViewById(R.id.webview1);
final WebView wv2 = (WebView) view2.findViewById(R.id.webview2);
wv1.loadUrl("http://www.nexusprime.de/update/");
wv1.setWebViewClient(new WebViewClient());
wv1.getSettings().setJavaScriptEnabled(true);
wv1.setVisibility(View.VISIBLE);
wv2.setVisibility(View.INVISIBLE);
return true;
}
}
Alles anzeigen
Ich hoffe mir kann jemand helfen.